wifi: rtw89: fix unsuccessful interface_add flow
authorPo-Hao Huang <phhuang@realtek.com>
Fri, 2 Dec 2022 06:15:26 +0000 (14:15 +0800)
committerKalle Valo <kvalo@kernel.org>
Thu, 8 Dec 2022 14:47:58 +0000 (16:47 +0200)
Remove according vifs from list if we couldn't set this interface up.
Otherwise the rtwvif_list could contain unreferenced objects.

Signed-off-by: Po-Hao Huang <phhuang@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/20221202061527.505668-4-pkshih@realtek.com
drivers/net/wireless/realtek/rtw89/mac80211.c

index 0c86d41..f9b95c5 100644 (file)
@@ -125,6 +125,7 @@ static int rtw89_ops_add_interface(struct ieee80211_hw *hw,
                                                  RTW89_PORT_NUM);
        if (rtwvif->port == RTW89_PORT_NUM) {
                ret = -ENOSPC;
+               list_del_init(&rtwvif->list);
                goto out;
        }
 
@@ -138,6 +139,7 @@ static int rtw89_ops_add_interface(struct ieee80211_hw *hw,
        ret = rtw89_mac_add_vif(rtwdev, rtwvif);
        if (ret) {
                rtw89_core_release_bit_map(rtwdev->hw_port, rtwvif->port);
+               list_del_init(&rtwvif->list);
                goto out;
        }