]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: iwlwifi: mld: handle SW reset w/o NIC error
authorJohannes Berg <johannes.berg@intel.com>
Wed, 30 Apr 2025 12:57:19 +0000 (15:57 +0300)
committerMiri Korenblit <miriam.rachel.korenblit@intel.com>
Tue, 6 May 2025 17:23:38 +0000 (20:23 +0300)
For the upcoming TOP reset, the sw_reset() method may be
called without nic_error() before it. In this case, also
abort any still pending scans and set in_hw_restart.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20250430155443.b732ff4e9f31.I3948c2d892f1ee82b3a6bf9f123be02a1eaa82e5@changeid
drivers/net/wireless/intel/iwlwifi/mld/mld.c

index 87624730fb5064723151344e6f017f02e35ca52a..5d91de59825671fa891c61fafc15e59c107d0174 100644 (file)
@@ -674,6 +674,13 @@ static bool iwl_mld_sw_reset(struct iwl_op_mode *op_mode,
 {
        struct iwl_mld *mld = IWL_OP_MODE_GET_MLD(op_mode);
 
+       /* SW reset can happen for TOP error w/o NIC error, so
+        * also abort scan here and set in_hw_restart, when we
+        * had a NIC error both were already done.
+        */
+       iwl_mld_report_scan_aborted(mld);
+       mld->fw_status.in_hw_restart = true;
+
        /* Do restart only in the following conditions are met:
         * - we consider the FW as running
         * - The trigger that brought us here is defined as one that requires