diff options
author | Felix Fietkau <nbd@nbd.name> | 2018-09-22 15:18:46 +0200 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2018-09-22 18:41:36 +0200 |
commit | 7decdf923add82b15d8d97cce3769c05335b7b2b (patch) | |
tree | 3781e0a866c1d1cbd487710ac260e90440e2374a /package | |
parent | a6beca1f5670654fee0170025c0a497b3747a572 (diff) | |
download | upstream-7decdf923add82b15d8d97cce3769c05335b7b2b.tar.gz upstream-7decdf923add82b15d8d97cce3769c05335b7b2b.tar.bz2 upstream-7decdf923add82b15d8d97cce3769c05335b7b2b.zip |
mac80211: fix tx queue allocation for active monitor interfaces
Fixes a crash with drivers like ath9k
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'package')
-rw-r--r-- | package/kernel/mac80211/patches/394-mac80211-allocate-TXQs-for-active-monitor-interfaces.patch | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/394-mac80211-allocate-TXQs-for-active-monitor-interfaces.patch b/package/kernel/mac80211/patches/394-mac80211-allocate-TXQs-for-active-monitor-interfaces.patch new file mode 100644 index 0000000000..c5c6586652 --- /dev/null +++ b/package/kernel/mac80211/patches/394-mac80211-allocate-TXQs-for-active-monitor-interfaces.patch @@ -0,0 +1,26 @@ +From: Felix Fietkau <nbd@nbd.name> +Date: Sat, 22 Sep 2018 15:05:59 +0200 +Subject: [PATCH] mac80211: allocate TXQs for active monitor interfaces + +Monitor mode interfaces with the active flag are passed down to the driver. +Drivers using TXQ expect that all interfaces have allocated TXQs before +they get added. + +Fixes: 79af1f866193d ("mac80211: avoid allocating TXQs that won't be used") +Cc: stable@vger.kernel.org +Reported-by: Catrinel Catrinescu <cc@80211.de> +Signed-off-by: Felix Fietkau <nbd@nbd.name> +--- + +--- a/net/mac80211/iface.c ++++ b/net/mac80211/iface.c +@@ -1816,7 +1816,8 @@ int ieee80211_if_add(struct ieee80211_lo + + if (local->ops->wake_tx_queue && + type != NL80211_IFTYPE_AP_VLAN && +- type != NL80211_IFTYPE_MONITOR) ++ (type != NL80211_IFTYPE_MONITOR || ++ (params->flags & MONITOR_FLAG_ACTIVE))) + txq_size += sizeof(struct txq_info) + + local->hw.txq_data_size; + |