diff options
author | Raja Mani <rmani@qca.qualcomm.com> | 2011-08-12 17:52:24 +0530 |
---|---|---|
committer | Kalle Valo <kvalo@qca.qualcomm.com> | 2011-08-31 10:10:53 +0300 |
commit | 0e5cc8e606ed89a4a58260c88474c74348230bed (patch) | |
tree | 4c77499a20bef532622e631df820e7c7e63c9b6f /drivers/net/wireless/ath/ath6kl/cfg80211.c | |
parent | f91db9bbdae6c86f0178fa03937e39ef82932770 (diff) | |
download | lwn-0e5cc8e606ed89a4a58260c88474c74348230bed.tar.gz lwn-0e5cc8e606ed89a4a58260c88474c74348230bed.zip |
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>
Diffstat (limited to 'drivers/net/wireless/ath/ath6kl/cfg80211.c')
-rw-r--r-- | drivers/net/wireless/ath/ath6kl/cfg80211.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/wireless/ath/ath6kl/cfg80211.c b/drivers/net/wireless/ath/ath6kl/cfg80211.c index e88b519ed1b6..b2b70e6618f5 100644 --- a/drivers/net/wireless/ath/ath6kl/cfg80211.c +++ b/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); } |