Fixes the following sparse warning for rtw_mlme.c:

drivers/staging/rtl8188eu/core/rtw_mlme.c:810:9: warning: context imbalance in 
'rtw_free_assoc_resources' - different lock contexts for basic block

Signed-off-by: Serguey Parkhomovsky <sergueyparkhomov...@gmail.com>
---
 drivers/staging/rtl8188eu/core/rtw_mlme.c | 37 ++++++++++++++++++++-----------
 1 file changed, 24 insertions(+), 13 deletions(-)

diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme.c 
b/drivers/staging/rtl8188eu/core/rtw_mlme.c
index d4632da..a47717a 100644
--- a/drivers/staging/rtl8188eu/core/rtw_mlme.c
+++ b/drivers/staging/rtl8188eu/core/rtw_mlme.c
@@ -755,12 +755,30 @@ static void free_scanqueue(struct mlme_priv *pmlmepriv)
        spin_unlock_bh(&scan_queue->lock);
 }
 
+static void rtw_free_current_network(struct adapter *adapter)
+{
+       struct wlan_network *pwlan = NULL;
+       struct mlme_priv *pmlmepriv = &adapter->mlmepriv;
+       struct wlan_network *tgt_network = &pmlmepriv->cur_network;
+
+       pwlan = rtw_find_network(&pmlmepriv->scanned_queue,
+                                tgt_network->network.MacAddress);
+       if (pwlan)
+               pwlan->fixed = false;
+       else
+               RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_,
+                       ("rtw_free_assoc_resources:pwlan==NULL\n\n"));
+
+       if (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) &&
+                        (adapter->stapriv.asoc_sta_count == 1))
+               rtw_free_network_nolock(pmlmepriv, pwlan);
+}
+
 /*
 *rtw_free_assoc_resources: the caller has to lock pmlmepriv->lock
 */
 void rtw_free_assoc_resources(struct adapter *adapter, int lock_scanned_queue)
 {
-       struct wlan_network *pwlan = NULL;
        struct  mlme_priv *pmlmepriv = &adapter->mlmepriv;
        struct  sta_priv *pstapriv = &adapter->stapriv;
        struct wlan_network *tgt_network = &pmlmepriv->cur_network;
@@ -793,20 +811,13 @@ void rtw_free_assoc_resources(struct adapter *adapter, 
int lock_scanned_queue)
                rtw_init_bcmc_stainfo(adapter);
        }
 
-       if (lock_scanned_queue)
+       if (lock_scanned_queue) {
                spin_lock_bh(&(pmlmepriv->scanned_queue.lock));
-
-       pwlan = rtw_find_network(&pmlmepriv->scanned_queue, 
tgt_network->network.MacAddress);
-       if (pwlan)
-               pwlan->fixed = false;
-       else
-               RT_TRACE(_module_rtl871x_mlme_c_, _drv_err_, 
("rtw_free_assoc_resources:pwlan==NULL\n\n"));
-
-       if ((check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) && 
(adapter->stapriv.asoc_sta_count == 1)))
-               rtw_free_network_nolock(pmlmepriv, pwlan);
-
-       if (lock_scanned_queue)
+               rtw_free_current_network(adapter);
                spin_unlock_bh(&pmlmepriv->scanned_queue.lock);
+       } else
+               rtw_free_current_network(adapter);
+
        pmlmepriv->key_mask = 0;
 }
 
-- 
1.9.3

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to