iwlwifi: mvm: don't transmit on unallocated queue
We can currently end up transmitting on an unallocated queue, if the allocation fails. Stop doing that, by simply not transmitting. We don't have any better strategy here, unfortunately, but the previous commits make that much less likely. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Luca Coelho <luciano.coelho@intel.com> Link: https://lore.kernel.org/r/iwlwifi.20200425130140.dcf1801f25ef.I6d71e13ea042765800f2ee41401b8eb282527c34@changeid
This commit is contained in:

committed by
Luca Coelho

parent
e88e2cd0b8
commit
3d1d87ab1a
@@ -1400,7 +1400,17 @@ void iwl_mvm_add_new_dqa_stream_wk(struct work_struct *wk)
|
||||
if (tid == IEEE80211_NUM_TIDS)
|
||||
tid = IWL_MAX_TID_COUNT;
|
||||
|
||||
iwl_mvm_sta_alloc_queue(mvm, txq->sta, txq->ac, tid);
|
||||
/*
|
||||
* We can't really do much here, but if this fails we can't
|
||||
* transmit anyway - so just don't transmit the frame etc.
|
||||
* and let them back up ... we've tried our best to allocate
|
||||
* a queue in the function itself.
|
||||
*/
|
||||
if (iwl_mvm_sta_alloc_queue(mvm, txq->sta, txq->ac, tid)) {
|
||||
list_del_init(&mvmtxq->list);
|
||||
continue;
|
||||
}
|
||||
|
||||
list_del_init(&mvmtxq->list);
|
||||
local_bh_disable();
|
||||
iwl_mvm_mac_itxq_xmit(mvm->hw, txq);
|
||||
|
Reference in New Issue
Block a user