From: Felix Fietkau Date: Sat, 2 Jul 2022 14:53:54 +0000 (+0200) Subject: mac80211: fix mesh queue selection issue X-Git-Tag: v22.03.0-rc5~16 X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=a3946a7cd10efd7a02e8c073b7dc7b8204224568;p=openwrt%2Fstaging%2Fhauke.git mac80211: fix mesh queue selection issue Signed-off-by: Felix Fietkau (cherry-picked from commit 51e9d496ba7958fb9f2d3eb4bc7f257837145dd0) --- 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 +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@vger.kernel.org +Signed-off-by: Felix Fietkau +--- + +--- 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;