From: Johannes Berg <johannes.b...@intel.com>

[ Upstream commit 152fdc0f698896708f9d7889a4ba4da6944b74f7 ]

If we get an error, no longer consider the firmware to be
in IWL_TRANS_FW_ALIVE state.

Signed-off-by: Johannes Berg <johannes.b...@intel.com>
Signed-off-by: Luca Coelho <luciano.coe...@intel.com>
Link: 
https://lore.kernel.org/r/iwlwifi.20201209231352.a9d01e79c1c7.Ib2deb076b392fb516a7230bac91d7ab8a9586d86@changeid
Signed-off-by: Luca Coelho <luciano.coe...@intel.com>
Signed-off-by: Sasha Levin <sas...@kernel.org>
---
 drivers/net/wireless/intel/iwlwifi/iwl-trans.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-trans.h 
b/drivers/net/wireless/intel/iwlwifi/iwl-trans.h
index 1e85d59b91613..b31bb56ca6591 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-trans.h
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-trans.h
@@ -1230,8 +1230,10 @@ static inline void iwl_trans_fw_error(struct iwl_trans 
*trans)
                return;
 
        /* prevent double restarts due to the same erroneous FW */
-       if (!test_and_set_bit(STATUS_FW_ERROR, &trans->status))
+       if (!test_and_set_bit(STATUS_FW_ERROR, &trans->status)) {
                iwl_op_mode_nic_error(trans->op_mode);
+               trans->state = IWL_TRANS_NO_FW;
+       }
 }
 
 static inline void iwl_trans_sync_nmi(struct iwl_trans *trans)
-- 
2.27.0

Reply via email to