diff options
Diffstat (limited to 'package/mac80211/patches/530-mac80211_queue_fix.patch')
-rw-r--r-- | package/mac80211/patches/530-mac80211_queue_fix.patch | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/package/mac80211/patches/530-mac80211_queue_fix.patch b/package/mac80211/patches/530-mac80211_queue_fix.patch new file mode 100644 index 0000000000..d84167392f --- /dev/null +++ b/package/mac80211/patches/530-mac80211_queue_fix.patch @@ -0,0 +1,69 @@ +--- a/net/mac80211/iface.c ++++ b/net/mac80211/iface.c +@@ -329,7 +329,7 @@ static int ieee80211_open(struct net_dev + if (sdata->vif.type == NL80211_IFTYPE_STATION) + ieee80211_queue_work(&local->hw, &sdata->u.mgd.work); + +- netif_start_queue(dev); ++ netif_tx_start_all_queues(dev); + + return 0; + err_del_interface: +@@ -357,7 +357,7 @@ static int ieee80211_stop(struct net_dev + /* + * Stop TX on this interface first. + */ +- netif_stop_queue(dev); ++ netif_tx_stop_all_queues(dev); + + /* + * Purge work for this interface. +--- a/net/mac80211/mlme.c ++++ b/net/mac80211/mlme.c +@@ -723,7 +723,7 @@ static void ieee80211_set_associated(str + ieee80211_recalc_smps(local, sdata); + mutex_unlock(&local->iflist_mtx); + +- netif_start_queue(sdata->dev); ++ netif_tx_start_all_queues(sdata->dev); + netif_carrier_on(sdata->dev); + } + +@@ -759,7 +759,7 @@ static void ieee80211_set_disassoc(struc + * time -- we don't want the scan code to enable queues. + */ + +- netif_stop_queue(sdata->dev); ++ netif_tx_stop_all_queues(sdata->dev); + netif_carrier_off(sdata->dev); + + rcu_read_lock(); +--- a/net/mac80211/offchannel.c ++++ b/net/mac80211/offchannel.c +@@ -113,7 +113,7 @@ void ieee80211_offchannel_stop_beaconing + */ + if (sdata->vif.type != NL80211_IFTYPE_STATION && + sdata->vif.type != NL80211_IFTYPE_MONITOR) +- netif_stop_queue(sdata->dev); ++ netif_tx_stop_all_queues(sdata->dev); + } + mutex_unlock(&local->iflist_mtx); + } +@@ -131,7 +131,7 @@ void ieee80211_offchannel_stop_station(s + continue; + + if (sdata->vif.type == NL80211_IFTYPE_STATION) { +- netif_stop_queue(sdata->dev); ++ netif_tx_stop_all_queues(sdata->dev); + if (sdata->u.mgd.associated) + ieee80211_offchannel_ps_enable(sdata); + } +@@ -153,7 +153,7 @@ void ieee80211_offchannel_return(struct + if (sdata->vif.type == NL80211_IFTYPE_STATION) { + if (sdata->u.mgd.associated) + ieee80211_offchannel_ps_disable(sdata); +- netif_wake_queue(sdata->dev); ++ netif_tx_wake_all_queues(sdata->dev); + } + + /* re-enable beaconing */ |