OSDN Git Service

staging: rtl8723bs: tidy up some error handling in core/rtw_mlme.c
authorFabio Aiuto <fabioaiuto83@gmail.com>
Sun, 4 Apr 2021 14:09:32 +0000 (16:09 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 5 Apr 2021 10:16:16 +0000 (12:16 +0200)
the RT_TRACE() output is not useful so we want to delete it. In this case
there is no cleanup for rtw_cleanbss_cmd() required or even possible. I've
deleted the RT_TRACE() output and added a goto unlock to show
that we can't continue if rtw_createbss_cmd() fails.

Suggested-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Fabio Aiuto <fabioaiuto83@gmail.com>
Link: https://lore.kernel.org/r/6affc9dd905f7c94a93bbd0fa706bc9026103c2e.1617545239.git.fabioaiuto83@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rtl8723bs/core/rtw_mlme.c

index e8a3951..e6bced0 100644 (file)
@@ -815,6 +815,7 @@ void rtw_surveydone_event_callback(struct adapter   *adapter, u8 *pbuf)
                                if (rtw_select_and_join_from_scanned_queue(pmlmepriv) == _SUCCESS) {
                                        _set_timer(&pmlmepriv->assoc_timer, MAX_JOIN_TIMEOUT);
                                } else {
+                                       u8 ret = _SUCCESS;
                                        struct wlan_bssid_ex    *pdev_network = &(adapter->registrypriv.dev_network);
                                        u8 *pibss = adapter->registrypriv.dev_network.MacAddress;
 
@@ -828,10 +829,11 @@ void rtw_surveydone_event_callback(struct adapter *adapter, u8 *pbuf)
 
                                        pmlmepriv->fw_state = WIFI_ADHOC_MASTER_STATE;
 
-                                       if (rtw_createbss_cmd(adapter) != _SUCCESS)
-                                               ;
-
                                        pmlmepriv->to_join = false;
+
+                                       ret = rtw_createbss_cmd(adapter);
+                                       if (ret != _SUCCESS)
+                                               goto unlock;
                                }
                        }
                } else {
@@ -877,7 +879,7 @@ void rtw_surveydone_event_callback(struct adapter   *adapter, u8 *pbuf)
        }
 
        /* DBG_871X("scan complete in %dms\n", jiffies_to_msecs(jiffies - pmlmepriv->scan_start_time)); */
-
+unlock:
        spin_unlock_bh(&pmlmepriv->lock);
 
        rtw_os_xmit_schedule(adapter);
@@ -1564,6 +1566,7 @@ void rtw_stadel_event_callback(struct adapter *adapter, u8 *pbuf)
                rtw_free_stainfo(adapter,  psta);
 
                if (adapter->stapriv.asoc_sta_count == 1) {/* a sta + bc/mc_stainfo (not Ibss_stainfo) */
+                       u8 ret = _SUCCESS;
                        /* rtw_indicate_disconnect(adapter);removed@20091105 */
                        spin_lock_bh(&(pmlmepriv->scanned_queue.lock));
                        /* free old ibss network */
@@ -1591,12 +1594,14 @@ void rtw_stadel_event_callback(struct adapter *adapter, u8 *pbuf)
                                _clr_fwstate_(pmlmepriv, WIFI_ADHOC_STATE);
                        }
 
-                       if (rtw_createbss_cmd(adapter) != _SUCCESS)
-                               ;
+                       ret = rtw_createbss_cmd(adapter);
+                       if (ret != _SUCCESS)
+                               goto unlock;
                }
 
        }
 
+unlock:
        spin_unlock_bh(&pmlmepriv->lock);
 }