wifi: rsi: Do not configure WoWlan in shutdown hook if not enabled
authorMarek Vasut <marex@denx.de>
Sat, 27 May 2023 22:28:33 +0000 (00:28 +0200)
committerKalle Valo <kvalo@kernel.org>
Thu, 8 Jun 2023 16:00:39 +0000 (19:00 +0300)
In case WoWlan was never configured during the operation of the system,
the hw->wiphy->wowlan_config will be NULL. rsi_config_wowlan() checks
whether wowlan_config is non-NULL and if it is not, then WARNs about it.
The warning is valid, as during normal operation the rsi_config_wowlan()
should only ever be called with non-NULL wowlan_config. In shutdown this
rsi_config_wowlan() should only ever be called if WoWlan was configured
before by the user.

Add checks for non-NULL wowlan_config into the shutdown hook. While at it,
check whether the wiphy is also non-NULL before accessing wowlan_config .
Drop the single-use wowlan_config variable, just inline it into function
call.

Fixes: 16bbc3eb8372 ("rsi: fix null pointer dereference during rsi_shutdown()")
Signed-off-by: Marek Vasut <marex@denx.de>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20230527222833.273741-1-marex@denx.de
drivers/net/wireless/rsi/rsi_91x_sdio.c

index d099987..6e33a25 100644 (file)
@@ -1463,10 +1463,8 @@ static void rsi_shutdown(struct device *dev)
 
        rsi_dbg(ERR_ZONE, "SDIO Bus shutdown =====>\n");
 
-       if (hw) {
-               struct cfg80211_wowlan *wowlan = hw->wiphy->wowlan_config;
-
-               if (rsi_config_wowlan(adapter, wowlan))
+       if (hw && hw->wiphy && hw->wiphy->wowlan_config) {
+               if (rsi_config_wowlan(adapter, hw->wiphy->wowlan_config))
                        rsi_dbg(ERR_ZONE, "Failed to configure WoWLAN\n");
        }