aboutsummaryrefslogtreecommitdiffstats
path: root/package/mac80211/patches/530-mac80211_queue_fix.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/mac80211/patches/530-mac80211_queue_fix.patch')
-rw-r--r--package/mac80211/patches/530-mac80211_queue_fix.patch69
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 */