wifi: iwlwifi: restrict driver retry loops to timeouts
authorJohannes Berg <johannes.berg@intel.com>
Fri, 27 Dec 2024 08:01:05 +0000 (10:01 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 13 Jan 2025 14:26:38 +0000 (15:26 +0100)
We had reverted the retry loop removal because of an issue
with PNVM loading, but that issue manifests as timeouts.
Since the retry loops aren't needed in other cases, only
do them when there were timeouts while loading, not other
errors.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20241227095718.a21bf40b0fd3.I70166e460906d6d183359889d7543b9c587b7182@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/iwl-drv.c

index d7bf996..61ac625 100644 (file)
@@ -1435,12 +1435,15 @@ _iwl_op_mode_start(struct iwl_drv *drv, struct iwlwifi_opmode_table *op)
                if (test_bit(STATUS_TRANS_DEAD, &drv->trans->status))
                        break;
 
-               IWL_ERR(drv, "retry init count %d\n", retry);
-
 #ifdef CONFIG_IWLWIFI_DEBUGFS
                debugfs_remove_recursive(drv->dbgfs_op_mode);
                drv->dbgfs_op_mode = NULL;
 #endif
+
+               if (PTR_ERR(op_mode) != -ETIMEDOUT)
+                       break;
+
+               IWL_ERR(drv, "retry init count %d\n", retry);
        }
 
        return NULL;