Message ID | 1360761966-32111-1-git-send-email-johannes@sipsolutions.net (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
On Wed, 2013-02-13 at 14:26 +0100, Johannes Berg wrote: > From: Johannes Berg <johannes.berg@intel.com> > > 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. Applied. johannes -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c index d75c650..f9da6de 100644 --- a/net/mac80211/mlme.c +++ b/net/mac80211/mlme.c @@ -2059,6 +2059,9 @@ 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_MAX_QUEUE_MAP, + IEEE80211_QUEUE_STOP_REASON_CSA); mutex_unlock(&ifmgd->mtx); /* @@ -2099,9 +2102,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_MAX_QUEUE_MAP, - IEEE80211_QUEUE_STOP_REASON_CSA); __ieee80211_disconnect(sdata); }