staging: rtl8723au: rtw_set_ssid(): Use rtw_do_join_network()
authorJes Sorensen <Jes.Sorensen@redhat.com>
Mon, 9 Jun 2014 13:16:58 +0000 (15:16 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 18 Jun 2014 21:04:23 +0000 (14:04 -0700)
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.Sorensen@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c

index 9c36f6cbd4a804044b2afcead94c1e1103480f0b..e75e078425c7aefc5d4336accb83966e5d71eff1 100644 (file)
@@ -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);