mac80211: Fixed netif_tx_wake_all_queues in IBSS mode
authorBenoit Papillault <benoit.papillault@free.fr>
Thu, 14 Jan 2010 22:20:31 +0000 (23:20 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 15 Jan 2010 21:58:28 +0000 (16:58 -0500)
When ieee80211_offchannel_return is called, it needs to re-enabled TX
queues that have been stopped in ieee80211_offchannel_stop_beaconing or
ieee80211_offchannel_stop_station. It happens if we are doing a scan with an
IBSS interface. In this case, the interface stopped transmitting.

Signed-off-by: Benoit Papillault <benoit.papillault@free.fr>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/offchannel.c

index 1facfeb1f79bea4dd21fe75697c238494e755fbe..c36b1911987afec08262139ccaaf5e7887a17735 100644 (file)
@@ -153,9 +153,11 @@ void ieee80211_offchannel_return(struct ieee80211_local *local,
                if (sdata->vif.type == NL80211_IFTYPE_STATION) {
                        if (sdata->u.mgd.associated)
                                ieee80211_offchannel_ps_disable(sdata);
-                       netif_tx_wake_all_queues(sdata->dev);
                }
 
+               if (sdata->vif.type != NL80211_IFTYPE_MONITOR)
+                       netif_tx_wake_all_queues(sdata->dev);
+
                /* re-enable beaconing */
                if (enable_beaconing &&
                    (sdata->vif.type == NL80211_IFTYPE_AP ||