commit: 5b36ebd8249f403c7edf7cf68d68e9a0d0f55243
From: Johannes Berg <[email protected]>
Date: Wed, 13 Feb 2013 14:21:45 +0100
Subject: mac80211: always unblock CSA queue stop when disconnecting

In some cases when disconnecting after (or during?) CSA
the queues might not recover, and then the only way to
recover is reloading the module.

Fix this by always unblocking the queue CSA reason when
disconnecting.

Cc: [email protected]
Reported-by: Jan-Michael Brummer <[email protected]>
Signed-off-by: Johannes Berg <[email protected]>
---
 net/mac80211/mlme.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index a7fb276..99be3b6 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -1819,6 +1819,8 @@ static void __ieee80211_disconnect(struct 
ieee80211_sub_if_data *sdata)
                               WLAN_REASON_DISASSOC_DUE_TO_INACTIVITY,
                               true, frame_buf);
        ifmgd->flags &= ~IEEE80211_STA_CSA_RECEIVED;
+       ieee80211_wake_queues_by_reason(&sdata->local->hw,
+                                       IEEE80211_QUEUE_STOP_REASON_CSA);
        mutex_unlock(&ifmgd->mtx);
 
        /*
@@ -1859,8 +1861,6 @@ static void ieee80211_csa_connection_drop_work(struct 
work_struct *work)
                container_of(work, struct ieee80211_sub_if_data,
                             u.mgd.csa_connection_drop_work);
 
-       ieee80211_wake_queues_by_reason(&sdata->local->hw,
-                                       IEEE80211_QUEUE_STOP_REASON_CSA);
        __ieee80211_disconnect(sdata);
 }
 
-- 
1.7.10.4
--
To unsubscribe from this list: send the line "unsubscribe stable" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to