wifi: iwlwifi: mvm: don't flush BSSes on restart with MLD API
authorJohannes Berg <johannes.berg@intel.com>
Tue, 25 Jun 2024 16:51:08 +0000 (19:51 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 26 Jun 2024 08:35:13 +0000 (10:35 +0200)
If the firmware has MLD APIs, it will handle all timing and we
don't need to give it timestamps. Therefore, we don't care about
the timestamps stored in the BSS table, so there's no need to
flush the BSS table.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20240625194805.c6d86dc2377e.I246d0fae0d23ed34b7cd9c3400edb004eb5ac1d0@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/fw.c

index ef5acec..52102a2 100644 (file)
@@ -457,12 +457,14 @@ static int iwl_mvm_load_ucode_wait_alive(struct iwl_mvm *mvm,
 #endif
 
        /*
+        * For pre-MLD API (MLD API doesn't use the timestamps):
         * All the BSSes in the BSS table include the GP2 in the system
         * at the beacon Rx time, this is of course no longer relevant
         * since we are resetting the firmware.
         * Purge all the BSS table.
         */
-       cfg80211_bss_flush(mvm->hw->wiphy);
+       if (!mvm->mld_api_is_used)
+               cfg80211_bss_flush(mvm->hw->wiphy);
 
        return 0;
 }