Browse Source

ath6kl: Check sme state before delivering disconnect event to cfg80211

 In some random cases, the firmware is sending two disconnect event to
 the host. In the current model, both diconnect events are passed to
 cfg80211 without checking local sme state machine, which is screwing
 cfg80211 layer state.

Signed-off-by: Raja Mani <rmani@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Raja Mani 14 years ago
parent
commit
0e5cc8e606
1 changed files with 1 additions and 1 deletions
  1. 1 1
      drivers/net/wireless/ath/ath6kl/cfg80211.c

+ 1 - 1
drivers/net/wireless/ath/ath6kl/cfg80211.c

@@ -643,7 +643,7 @@ void ath6kl_cfg80211_disconnect_event(struct ath6kl *ar, u8 reason,
 						NULL, 0,
 						WLAN_STATUS_UNSPECIFIED_FAILURE,
 						GFP_KERNEL);
-		} else {
+		} else if (ar->sme_state == SME_CONNECTED) {
 			cfg80211_disconnected(ar->net_dev, reason,
 					      NULL, 0, GFP_KERNEL);
 		}