]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
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 d7bf996d3a82b6a823410e41c6a9b346e190763c..61ac625911618a416b62653e0840cf82452ce7a0 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;