aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBeni Lev <beni.lev@intel.com>2016-11-17 07:03:17 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-05-14 08:00:16 -0400
commit04dd401a5145da42a040a622bac2eb9a96c01308 (patch)
treec4e3ae9e928c23f238959d0c542df99832bbb27a
parenta6fe39262c518c105f7003dca5eb5ae45b72713e (diff)
iwlwifi: mvm: Use aux queue for offchannel frames in dqa
commit 6574dc943fc32a2fce69fab14891abca7eecb67c upstream. 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> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/net/wireless/intel/iwlwifi/mvm/tx.c10
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 95b2ec1517e5..e129661e4d99 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
@@ -568,9 +568,10 @@ int iwl_mvm_tx_skb_non_sta(struct iwl_mvm *mvm, struct sk_buff *skb)
568 * (this is not possible for unicast packets as a TLDS discovery 568 * (this is not possible for unicast packets as a TLDS discovery
569 * response are sent without a station entry); otherwise use the 569 * response are sent without a station entry); otherwise use the
570 * AUX station. 570 * AUX station.
571 * In DQA mode, if vif is of type STATION and frames are not multicast, 571 * In DQA mode, if vif is of type STATION and frames are not multicast
572 * they should be sent from the BSS queue. For example, TDLS setup 572 * or offchannel, they should be sent from the BSS queue.
573 * frames should be sent on this queue, as they go through the AP. 573 * For example, TDLS setup frames should be sent on this queue,
574 * as they go through the AP.
574 */ 575 */
575 sta_id = mvm->aux_sta.sta_id; 576 sta_id = mvm->aux_sta.sta_id;
576 if (info.control.vif) { 577 if (info.control.vif) {
@@ -592,7 +593,8 @@ int iwl_mvm_tx_skb_non_sta(struct iwl_mvm *mvm, struct sk_buff *skb)
592 if (ap_sta_id != IWL_MVM_STATION_COUNT) 593 if (ap_sta_id != IWL_MVM_STATION_COUNT)
593 sta_id = ap_sta_id; 594 sta_id = ap_sta_id;
594 } else if (iwl_mvm_is_dqa_supported(mvm) && 595 } else if (iwl_mvm_is_dqa_supported(mvm) &&
595 info.control.vif->type == NL80211_IFTYPE_STATION) { 596 info.control.vif->type == NL80211_IFTYPE_STATION &&
597 queue != mvm->aux_queue) {
596 queue = IWL_MVM_DQA_BSS_CLIENT_QUEUE; 598 queue = IWL_MVM_DQA_BSS_CLIENT_QUEUE;
597 } 599 }
598 } 600 }