[openwrt/openwrt] mac80211: fix mesh queue selection issue
LEDE Commits
lede-commits at lists.infradead.org
Sat Jul 2 08:05:18 PDT 2022
nbd pushed a commit to openwrt/openwrt.git, branch openwrt-22.03:
https://git.openwrt.org/a3946a7cd10efd7a02e8c073b7dc7b8204224568
commit a3946a7cd10efd7a02e8c073b7dc7b8204224568
Author: Felix Fietkau <nbd at nbd.name>
AuthorDate: Sat Jul 2 16:53:54 2022 +0200
mac80211: fix mesh queue selection issue
Signed-off-by: Felix Fietkau <nbd at nbd.name>
(cherry-picked from commit 51e9d496ba7958fb9f2d3eb4bc7f257837145dd0)
---
...x-queue-selection-for-mesh-OCB-interfaces.patch | 28 ++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/package/kernel/mac80211/patches/subsys/338-mac80211-fix-queue-selection-for-mesh-OCB-interfaces.patch b/package/kernel/mac80211/patches/subsys/338-mac80211-fix-queue-selection-for-mesh-OCB-interfaces.patch
new file mode 100644
index 0000000000..9547db03d1
--- /dev/null
+++ b/package/kernel/mac80211/patches/subsys/338-mac80211-fix-queue-selection-for-mesh-OCB-interfaces.patch
@@ -0,0 +1,28 @@
+From: Felix Fietkau <nbd at nbd.name>
+Date: Sat, 2 Jul 2022 16:41:32 +0200
+Subject: [PATCH] mac80211: fix queue selection for mesh/OCB interfaces
+
+When using iTXQ, the code assumes that there is only one vif queue for
+broadcast packets, using the BE queue. Allowing non-BE queue marking
+violates that assumption and txq->ac == skb_queue_mapping is no longer
+guaranteed. This can cause issues with queue handling in the driver and
+also causes issues with the recent ATF change, resulting in an AQL
+underflow warning.
+
+Cc: stable at vger.kernel.org
+Signed-off-by: Felix Fietkau <nbd at nbd.name>
+---
+
+--- a/net/mac80211/wme.c
++++ b/net/mac80211/wme.c
+@@ -147,8 +147,8 @@ u16 __ieee80211_select_queue(struct ieee
+ bool qos;
+
+ /* all mesh/ocb stations are required to support WME */
+- if (sdata->vif.type == NL80211_IFTYPE_MESH_POINT ||
+- sdata->vif.type == NL80211_IFTYPE_OCB)
++ if (sta && (sdata->vif.type == NL80211_IFTYPE_MESH_POINT ||
++ sdata->vif.type == NL80211_IFTYPE_OCB))
+ qos = true;
+ else if (sta)
+ qos = sta->sta.wme;
More information about the lede-commits
mailing list