]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
wifi: iwlwifi: mld: don't WARN on WoWLAN suspend w/o BSS vif
authorJohannes Berg <johannes.berg@intel.com>
Fri, 15 May 2026 12:14:59 +0000 (15:14 +0300)
committerMiri Korenblit <miriam.rachel.korenblit@intel.com>
Sat, 16 May 2026 20:31:25 +0000 (23:31 +0300)
Clearly, from a user perspective, it must be valid to configure
WoWLAN (which can include network detection) and then suspend
while not connected to a network, or even without an interface
at all (WoWLAN config is handled on a per-wiphy basis). Since
mac80211 doesn't distinguish these cases and simply calls the
driver to suspend whenever WoWLAN is configured, the driver has
to cleanly handle the case where it's called for WoWLAN but no
(BSS) interface exists.

Remove the WARN_ON(), move the print so it doesn't get done in
this case, and keep returning 1 to disconnect everything.

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

index ef98efc8fb1b2bdc89f597dea9dca986c73a0bbf..3a595a1c2e00bfca15eb8fc5bb7cd26385c04d22 100644 (file)
@@ -1930,12 +1930,12 @@ int iwl_mld_wowlan_suspend(struct iwl_mld *mld, struct cfg80211_wowlan *wowlan)
        if (WARN_ON(!wowlan))
                return 1;
 
-       IWL_DEBUG_WOWLAN(mld, "Starting the wowlan suspend flow\n");
-
        bss_vif = iwl_mld_get_bss_vif(mld);
-       if (WARN_ON(!bss_vif))
+       if (!bss_vif)
                return 1;
 
+       IWL_DEBUG_WOWLAN(mld, "Starting the wowlan suspend flow\n");
+
        if (!bss_vif->cfg.assoc) {
                int ret;
                /* If we're not associated, this must be netdetect */