diff options
author | Beni Lev <beni.lev@intel.com> | 2016-11-17 07:03:17 -0500 |
---|---|---|
committer | Luca Coelho <luciano.coelho@intel.com> | 2017-02-03 09:26:39 -0500 |
commit | 6574dc943fc32a2fce69fab14891abca7eecb67c (patch) | |
tree | ad36ee8d7417a93bc04b603a3be0e9a836fe6272 | |
parent | 19f63c531b85281003d7775490fd16d1579e2519 (diff) |
iwlwifi: mvm: Use aux queue for offchannel frames in dqa
Since offchannel activity doesn't always require a BSS, e.g. ANQP
sessions, offchannel frames should not use the BSS queue, because it
might not be initialized.
Use the auxilary queue instead
Fixes: e3118ad74d7e ("iwlwifi: mvm: support tdls in dqa mode")
Signed-off-by: Beni Lev <beni.lev@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
-rw-r--r-- | drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c index 2b2db38eee3e..ea5d5b0d85b3 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c | |||
@@ -570,9 +570,10 @@ int iwl_mvm_tx_skb_non_sta(struct iwl_mvm *mvm, struct sk_buff *skb) | |||
570 | * (this is not possible for unicast packets as a TLDS discovery | 570 | * (this is not possible for unicast packets as a TLDS discovery |
571 | * response are sent without a station entry); otherwise use the | 571 | * response are sent without a station entry); otherwise use the |
572 | * AUX station. | 572 | * AUX station. |
573 | * In DQA mode, if vif is of type STATION and frames are not multicast, | 573 | * In DQA mode, if vif is of type STATION and frames are not multicast |
574 | * they should be sent from the BSS queue. For example, TDLS setup | 574 | * or offchannel, they should be sent from the BSS queue. |
575 | * frames should be sent on this queue, as they go through the AP. | 575 | * For example, TDLS setup frames should be sent on this queue, |
576 | * as they go through the AP. | ||
576 | */ | 577 | */ |
577 | sta_id = mvm->aux_sta.sta_id; | 578 | sta_id = mvm->aux_sta.sta_id; |
578 | if (info.control.vif) { | 579 | if (info.control.vif) { |
@@ -594,7 +595,8 @@ int iwl_mvm_tx_skb_non_sta(struct iwl_mvm *mvm, struct sk_buff *skb) | |||
594 | if (ap_sta_id != IWL_MVM_STATION_COUNT) | 595 | if (ap_sta_id != IWL_MVM_STATION_COUNT) |
595 | sta_id = ap_sta_id; | 596 | sta_id = ap_sta_id; |
596 | } else if (iwl_mvm_is_dqa_supported(mvm) && | 597 | } else if (iwl_mvm_is_dqa_supported(mvm) && |
597 | info.control.vif->type == NL80211_IFTYPE_STATION) { | 598 | info.control.vif->type == NL80211_IFTYPE_STATION && |
599 | queue != mvm->aux_queue) { | ||
598 | queue = IWL_MVM_DQA_BSS_CLIENT_QUEUE; | 600 | queue = IWL_MVM_DQA_BSS_CLIENT_QUEUE; |
599 | } | 601 | } |
600 | } | 602 | } |