wifi: iwlwifi: fail NIC access fast on dead NIC
authorJohannes Berg <johannes.berg@intel.com>
Thu, 21 Sep 2023 08:58:05 +0000 (11:58 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 25 Sep 2023 07:15:00 +0000 (09:15 +0200)
If the NIC is already dead, as detected by the transport then
there's no point to try to grab the NIC access and time out,
we can just fail fast. This may speed up recovery.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Gregory Greenman <gregory.greenman@intel.com>
Link: https://lore.kernel.org/r/20230921110726.f3d8498c5a60.I5d0c442a731ca4c00716910d215b4bcde6963a65@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/pcie/trans.c

index 5020ae4493c66d05dbd0e0c12729712e161f9883..385e152f04feb832985daa16aa981751eb435724 100644 (file)
@@ -2177,6 +2177,9 @@ bool __iwl_trans_pcie_grab_nic_access(struct iwl_trans *trans)
                   CSR_GP_CNTRL_REG_FLAG_GOING_TO_SLEEP;
        u32 poll = CSR_GP_CNTRL_REG_VAL_MAC_ACCESS_EN;
 
+       if (test_bit(STATUS_TRANS_DEAD, &trans->status))
+               return false;
+
        spin_lock(&trans_pcie->reg_lock);
 
        if (trans_pcie->cmd_hold_nic_awake)