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:43:29 +0200 |
commit | 609707cbe7cfce2038cf54a8deb6c341a06df1d8 (patch) | |
tree | 7246e612ee69587bd10b54b2fa73457fbb5fba33 /package/kernel | |
parent | ca1d6c7d30cfdf3d4cab0f530baec9e818a31f7f (diff) | |
download | upstream-609707cbe7cfce2038cf54a8deb6c341a06df1d8.tar.gz upstream-609707cbe7cfce2038cf54a8deb6c341a06df1d8.tar.bz2 upstream-609707cbe7cfce2038cf54a8deb6c341a06df1d8.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/kernel')
-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; + |