提交 51ec09af 编写于 作者: A Arik Nemtsov 提交者: Emmanuel Grumbach

iwlwifi: mvm: consider TDLS queues as used during drain

When a TDLS station is being drained its Tx queues are still in use. Don't
allocate them to a different station in the meantime.
Signed-off-by: NArik Nemtsov <arikx.nemtsov@intel.com>
Reviewed-by: NJohannes Berg <johannes.berg@intel.com>
Signed-off-by: NEmmanuel Grumbach <emmanuel.grumbach@intel.com>
上级 7ac4a50a
...@@ -244,6 +244,7 @@ static void iwl_mvm_mac_sta_hw_queues_iter(void *_data, ...@@ -244,6 +244,7 @@ static void iwl_mvm_mac_sta_hw_queues_iter(void *_data,
unsigned long iwl_mvm_get_used_hw_queues(struct iwl_mvm *mvm, unsigned long iwl_mvm_get_used_hw_queues(struct iwl_mvm *mvm,
struct ieee80211_vif *exclude_vif) struct ieee80211_vif *exclude_vif)
{ {
u8 sta_id;
struct iwl_mvm_hw_queues_iface_iterator_data data = { struct iwl_mvm_hw_queues_iface_iterator_data data = {
.exclude_vif = exclude_vif, .exclude_vif = exclude_vif,
.used_hw_queues = .used_hw_queues =
...@@ -264,6 +265,13 @@ unsigned long iwl_mvm_get_used_hw_queues(struct iwl_mvm *mvm, ...@@ -264,6 +265,13 @@ unsigned long iwl_mvm_get_used_hw_queues(struct iwl_mvm *mvm,
iwl_mvm_mac_sta_hw_queues_iter, iwl_mvm_mac_sta_hw_queues_iter,
&data); &data);
/*
* Some TDLS stations may be removed but are in the process of being
* drained. Don't touch their queues.
*/
for_each_set_bit(sta_id, mvm->sta_drained, IWL_MVM_STATION_COUNT)
data.used_hw_queues |= mvm->tfd_drained[sta_id];
return data.used_hw_queues; return data.used_hw_queues;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册