mac80211: drop check for DONT_REORDER in __ieee80211_select_queue
authorFelix Fietkau <nbd@nbd.name>
Wed, 10 Nov 2021 21:22:01 +0000 (22:22 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Nov 2021 08:48:47 +0000 (09:48 +0100)
commit76025be187d2396efd7a1bbd45084154f4eea01a
tree90216124ebad4d3b39e7cbecb6a8eb0d570f3698
parent60a3a889efe5f56f0ed90059b49d85a6ccfaa2df
mac80211: drop check for DONT_REORDER in __ieee80211_select_queue

commit f6ab25d41b18f3d26883cb9c20875e1a85c4f05b upstream.

When __ieee80211_select_queue is called, skb->cb has not been cleared yet,
which means that info->control.flags can contain garbage.
In some cases this leads to IEEE80211_TX_CTRL_DONT_REORDER being set, causing
packets marked for other queues to randomly end up in BE instead.

This flag only needs to be checked in ieee80211_select_queue_80211, since
the radiotap parser is the only piece of code that sets it

Fixes: 66d06c84730c ("mac80211: adhere to Tx control flag that prevents frame reordering")
Cc: stable@vger.kernel.org
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Link: https://lore.kernel.org/r/20211110212201.35452-1-nbd@nbd.name
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/mac80211/wme.c