diff options
Diffstat (limited to 'drivers/net/wireless/iwlwifi/mvm/mac80211.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/mac80211.c | 20 |
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 | ||
3580 | const struct ieee80211_ops iwl_mvm_hw_ops = { | 3582 | const struct ieee80211_ops iwl_mvm_hw_ops = { |