From: Jes Sorensen Date: Mon, 9 Jun 2014 13:16:58 +0000 (+0200) Subject: staging: rtl8723au: rtw_set_ssid(): Use rtw_do_join_network() X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=72795e9de7deae0952d1174cfb37cb869b582d29;p=deliverable%2Flinux.git staging: rtl8723au: rtw_set_ssid(): Use rtw_do_join_network() 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 Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c b/drivers/staging/rtl8723au/os_dep/ioctl_cfg80211.c index 9c36f6cbd4a8..e75e078425c7 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);