diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/tx.c | 4 |
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); |