[PATCH 1/4] Handle join failure

Eugene Krasnikov k.eugene.e at gmail.com
Fri Jul 5 02:45:04 EDT 2013


In case join fails driver leaves hardware in joined state.
That will cause different side effects like next join will
always fail and scan does not work properly. As a fix just
delete bss  in case join failed.

Signed-off-by: Eugene Krasnikov <k.eugene.e at gmail.com>
---
 main.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/main.c b/main.c
index 0cc3e02..e073c01 100644
--- a/main.c
+++ b/main.c
@@ -528,14 +528,16 @@ static void wcn36xx_bss_info_changed(struct ieee80211_hw *hw,
 		wcn36xx_dbg(WCN36XX_DBG_MAC, "mac bss changed_bssid %pM",
 			    bss_conf->bssid);
 
-		if (vif->type == NL80211_IFTYPE_STATION &&
-		    !is_zero_ether_addr(bss_conf->bssid)) {
+		if (!is_zero_ether_addr(bss_conf->bssid)) {
 			wcn->is_joining = true;
 			wcn36xx_smd_join(wcn, bss_conf->bssid,
 					 vif->addr, wcn->ch);
 			wcn36xx_smd_config_bss(wcn, NL80211_IFTYPE_STATION,
 					       bss_conf->bssid, false,
 					       wcn->beacon_interval);
+		} else {
+			wcn->is_joining = false;
+			wcn36xx_smd_delete_bss(wcn);
 		}
 	}
 
@@ -584,7 +586,6 @@ static void wcn36xx_bss_info_changed(struct ieee80211_hw *hw,
 				    bss_conf->aid);
 			wcn->aid = 0;
 			wcn36xx_smd_delete_sta(wcn);
-			wcn36xx_smd_delete_bss(wcn);
 			wcn36xx_smd_set_link_st(wcn,
 						bss_conf->bssid,
 						vif->addr,
-- 
1.7.11.3




More information about the wcn36xx mailing list