aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/mvm/mac80211.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/iwlwifi/mvm/mac80211.c')
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/mac80211.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/iwlwifi/mvm/mac80211.c
index 2c79ad360cd9..cef6f3373542 100644
--- a/drivers/net/wireless/iwlwifi/mvm/mac80211.c
+++ b/drivers/net/wireless/iwlwifi/mvm/mac80211.c
@@ -3565,16 +3565,18 @@ static void iwl_mvm_mac_flush(struct ieee80211_hw *hw,
3565 msk |= mvmsta->tfd_queue_msk; 3565 msk |= mvmsta->tfd_queue_msk;
3566 } 3566 }
3567 3567
3568 msk &= ~BIT(vif->hw_queue[IEEE80211_AC_VO]); 3568 if (drop) {
3569 3569 if (iwl_mvm_flush_tx_path(mvm, msk, true))
3570 if (iwl_mvm_flush_tx_path(mvm, msk, true)) 3570 IWL_ERR(mvm, "flush request fail\n");
3571 IWL_ERR(mvm, "flush request fail\n"); 3571 mutex_unlock(&mvm->mutex);
3572 mutex_unlock(&mvm->mutex); 3572 } else {
3573 mutex_unlock(&mvm->mutex);
3573 3574
3574 /* this can take a while, and we may need/want other operations 3575 /* this can take a while, and we may need/want other operations
3575 * to succeed while doing this, so do it without the mutex held 3576 * to succeed while doing this, so do it without the mutex held
3576 */ 3577 */
3577 iwl_trans_wait_tx_queue_empty(mvm->trans, msk); 3578 iwl_trans_wait_tx_queue_empty(mvm->trans, msk);
3579 }
3578} 3580}
3579 3581
3580const struct ieee80211_ops iwl_mvm_hw_ops = { 3582const struct ieee80211_ops iwl_mvm_hw_ops = {