From: Jes Sorensen <jes.soren...@redhat.com>

We already have the wlan_network we wish to join, hence it's pointless
to go back to the scanned_queue and pull it out of there, before
running the join logic.

Signed-off-by: Jes Sorensen <jes.soren...@redhat.com>
---
 drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c | 25 +++++++++++++++++++----
 1 file changed, 21 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c 
b/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c
index 45061c2..7f4a52c 100644
--- a/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c
+++ b/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c
@@ -2099,11 +2099,28 @@ handle_tkip_countermeasure:
 
        pmlmepriv->assoc_by_bssid = false;
 
-       if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY))
-               pmlmepriv->to_join = true;
-       else
-               status = rtw_do_join23a(padapter);
+       pmlmepriv->to_join = true;
+
+       if (!check_fwstate(pmlmepriv, _FW_UNDER_SURVEY)) {
+               pmlmepriv->cur_network.join_res = -2;
 
+               status = rtw_do_join_network(padapter, newnetwork);
+               if (status == _SUCCESS) {
+                       pmlmepriv->to_join = false;
+               } else {
+                       if (check_fwstate(pmlmepriv, WIFI_ADHOC_STATE)) {
+                               /* switch to ADHOC_MASTER */
+                               status = rtw_do_join_adhoc(padapter);
+                               if (status != _SUCCESS)
+                                       goto release_mlme_lock;
+                       } else {
+                               /* can't associate ; reset under-linking */
+                               _clr_fwstate_(pmlmepriv, _FW_UNDER_LINKING);
+                               status = _FAIL;
+                               pmlmepriv->to_join = false;
+                       }
+               }
+       }
 release_mlme_lock:
        spin_unlock_bh(&pmlmepriv->lock);
 
-- 
1.9.3

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to