Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
mac80211: backport an upstream fix for queue start/stop handling
Fixes issues with 802.11s Signed-off-by: Felix Fietkau <nbd@nbd.name>
- Loading branch information
Showing
1 changed file
with
29 additions
and
0 deletions.
There are no files selected for viewing
29 changes: 29 additions & 0 deletions
29
...ge/kernel/mac80211/patches/325-mac80211-unconditionally-start-new-netdev-queues-wit.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
From: Johannes Berg <johannes.berg@intel.com> | ||
Date: Wed, 29 Mar 2017 14:15:24 +0200 | ||
Subject: [PATCH] mac80211: unconditionally start new netdev queues with iTXQ | ||
support | ||
|
||
When internal mac80211 TXQs aren't supported, netdev queues must | ||
always started out started even when driver queues are stopped | ||
while the interface is added. This is necessary because with the | ||
internal TXQ support netdev queues are never stopped and packet | ||
scheduling/dropping is done in mac80211. | ||
|
||
Cc: stable@vger.kernel.org # 4.9+ | ||
Fixes: 80a83cfc434b1 ("mac80211: skip netdev queue control with software queuing") | ||
Reported-and-tested-by: Sven Eckelmann <sven.eckelmann@openmesh.com> | ||
Signed-off-by: Johannes Berg <johannes.berg@intel.com> | ||
--- | ||
|
||
--- a/net/mac80211/iface.c | ||
+++ b/net/mac80211/iface.c | ||
@@ -727,7 +727,8 @@ int ieee80211_do_open(struct wireless_de | ||
ieee80211_recalc_ps(local); | ||
|
||
if (sdata->vif.type == NL80211_IFTYPE_MONITOR || | ||
- sdata->vif.type == NL80211_IFTYPE_AP_VLAN) { | ||
+ sdata->vif.type == NL80211_IFTYPE_AP_VLAN || | ||
+ local->ops->wake_tx_queue) { | ||
/* XXX: for AP_VLAN, actually track AP queues */ | ||
netif_tx_start_all_queues(dev); | ||
} else if (dev) { |