wifi: rtw89: refine clearing supported bands to check 2/5 GHz first
authorZong-Zhe Yang <kevin_yang@realtek.com>
Fri, 2 Jun 2023 15:05:49 +0000 (23:05 +0800)
committerKalle Valo <kvalo@kernel.org>
Thu, 8 Jun 2023 15:58:51 +0000 (18:58 +0300)
We refine to check if supported bands of NL80211_BAND_2GHZ and
NL80211_BAND_5GHZ exist before freeing their iftype_data. For
now, it does not really encounter problems because all current
chips support both 2 GHz and 5 GHz. But, driver actually allows
chips to declare whether 2/5 GHz are supported or not. In case
some future chips really don't support them, we refine this code.

Signed-off-by: Zong-Zhe Yang <kevin_yang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20230602150556.36777-2-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/core.c

index 5b5337890c76ecf843d155ab0204c86e96e14b1b..33d47933eafc9c9b2886cca5fd32427c725af06b 100644 (file)
@@ -3386,8 +3386,10 @@ static void rtw89_core_clr_supported_band(struct rtw89_dev *rtwdev)
 {
        struct ieee80211_hw *hw = rtwdev->hw;
 
-       kfree(hw->wiphy->bands[NL80211_BAND_2GHZ]->iftype_data);
-       kfree(hw->wiphy->bands[NL80211_BAND_5GHZ]->iftype_data);
+       if (hw->wiphy->bands[NL80211_BAND_2GHZ])
+               kfree(hw->wiphy->bands[NL80211_BAND_2GHZ]->iftype_data);
+       if (hw->wiphy->bands[NL80211_BAND_5GHZ])
+               kfree(hw->wiphy->bands[NL80211_BAND_5GHZ]->iftype_data);
        if (hw->wiphy->bands[NL80211_BAND_6GHZ])
                kfree(hw->wiphy->bands[NL80211_BAND_6GHZ]->iftype_data);
        kfree(hw->wiphy->bands[NL80211_BAND_2GHZ]);