aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/iwlwifi/mvm/tx.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/tx.c b/drivers/net/wireless/iwlwifi/mvm/tx.c
index 3c575a39987b..a4d3bce48fbf 100644
--- a/drivers/net/wireless/iwlwifi/mvm/tx.c
+++ b/drivers/net/wireless/iwlwifi/mvm/tx.c
@@ -704,7 +704,7 @@ static void iwl_mvm_rx_tx_cmd_single(struct iwl_mvm *mvm,
704 */ 704 */
705 spin_lock_bh(&mvmsta->lock); 705 spin_lock_bh(&mvmsta->lock);
706 sta = rcu_dereference(mvm->fw_id_to_mac_id[sta_id]); 706 sta = rcu_dereference(mvm->fw_id_to_mac_id[sta_id]);
707 if (IS_ERR_OR_NULL(sta)) { 707 if (!sta || PTR_ERR(sta) == -EBUSY) {
708 /* 708 /*
709 * Station disappeared in the meantime: 709 * Station disappeared in the meantime:
710 * so we are draining. 710 * so we are draining.
@@ -713,7 +713,7 @@ static void iwl_mvm_rx_tx_cmd_single(struct iwl_mvm *mvm,
713 schedule_work(&mvm->sta_drained_wk); 713 schedule_work(&mvm->sta_drained_wk);
714 } 714 }
715 spin_unlock_bh(&mvmsta->lock); 715 spin_unlock_bh(&mvmsta->lock);
716 } else if (!mvmsta) { 716 } else if (!mvmsta && PTR_ERR(sta) == -EBUSY) {
717 /* Tx response without STA, so we are draining */ 717 /* Tx response without STA, so we are draining */
718 set_bit(sta_id, mvm->sta_drained); 718 set_bit(sta_id, mvm->sta_drained);
719 schedule_work(&mvm->sta_drained_wk); 719 schedule_work(&mvm->sta_drained_wk);