]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - releases/4.9.28/iwlwifi-mvm-use-aux-queue-for-offchannel-frames-in-dqa.patch
5.1-stable patches
[thirdparty/kernel/stable-queue.git] / releases / 4.9.28 / iwlwifi-mvm-use-aux-queue-for-offchannel-frames-in-dqa.patch
1 From 6574dc943fc32a2fce69fab14891abca7eecb67c Mon Sep 17 00:00:00 2001
2 From: Beni Lev <beni.lev@intel.com>
3 Date: Thu, 17 Nov 2016 14:03:17 +0200
4 Subject: iwlwifi: mvm: Use aux queue for offchannel frames in dqa
5
6 From: Beni Lev <beni.lev@intel.com>
7
8 commit 6574dc943fc32a2fce69fab14891abca7eecb67c upstream.
9
10 Since offchannel activity doesn't always require a BSS, e.g. ANQP
11 sessions, offchannel frames should not use the BSS queue, because it
12 might not be initialized.
13 Use the auxilary queue instead
14
15 Fixes: e3118ad74d7e ("iwlwifi: mvm: support tdls in dqa mode")
16 Signed-off-by: Beni Lev <beni.lev@intel.com>
17 Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
18 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
19
20 ---
21 drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 10 ++++++----
22 1 file changed, 6 insertions(+), 4 deletions(-)
23
24 --- a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
25 +++ b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
26 @@ -568,9 +568,10 @@ int iwl_mvm_tx_skb_non_sta(struct iwl_mv
27 * (this is not possible for unicast packets as a TLDS discovery
28 * response are sent without a station entry); otherwise use the
29 * AUX station.
30 - * In DQA mode, if vif is of type STATION and frames are not multicast,
31 - * they should be sent from the BSS queue. For example, TDLS setup
32 - * frames should be sent on this queue, as they go through the AP.
33 + * In DQA mode, if vif is of type STATION and frames are not multicast
34 + * or offchannel, they should be sent from the BSS queue.
35 + * For example, TDLS setup frames should be sent on this queue,
36 + * as they go through the AP.
37 */
38 sta_id = mvm->aux_sta.sta_id;
39 if (info.control.vif) {
40 @@ -592,7 +593,8 @@ int iwl_mvm_tx_skb_non_sta(struct iwl_mv
41 if (ap_sta_id != IWL_MVM_STATION_COUNT)
42 sta_id = ap_sta_id;
43 } else if (iwl_mvm_is_dqa_supported(mvm) &&
44 - info.control.vif->type == NL80211_IFTYPE_STATION) {
45 + info.control.vif->type == NL80211_IFTYPE_STATION &&
46 + queue != mvm->aux_queue) {
47 queue = IWL_MVM_DQA_BSS_CLIENT_QUEUE;
48 }
49 }