]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: brcmfmac: fix brcmf_vif_clear_mgmt_ies when stopping AP
authorRenjaya Raga Zenta <ragazenta@gmail.com>
Thu, 21 Nov 2024 07:09:27 +0000 (14:09 +0700)
committerKalle Valo <kvalo@kernel.org>
Mon, 9 Dec 2024 15:59:13 +0000 (17:59 +0200)
This removes the following error log when stopping AP:

ieee80211 phy0: brcmf_vif_set_mgmt_ie: vndr ie set error : -52

It happened if:

1) previously wlan interface was in station mode (wpa_supplicant) and
   connected to a hotspot
2) then started AP mode (hostapd)
3) and then stopped AP mode.

The error happened when it tried to clear BRCMF_VNDR_IE_PRBREQ_FLAG.
This flag is not set in `brcmf_config_ap_mgmt_ie`, but
BRCMF_VNDR_IE_ASSOCRSP_FLAG is set instead.

Signed-off-by: Renjaya Raga Zenta <ragazenta@gmail.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://patch.msgid.link/20241121-brcmfmac-v1-1-02fc3fb427c2@gmail.com
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c

index 689e779fe00fc6d1a86924771176d38b32058969..902ac3108782a51aa9e4e5aa165cfc1d69da7685 100644 (file)
@@ -4999,12 +4999,16 @@ exit:
 s32 brcmf_vif_clear_mgmt_ies(struct brcmf_cfg80211_vif *vif)
 {
        static const s32 pktflags[] = {
-               BRCMF_VNDR_IE_PRBREQ_FLAG,
                BRCMF_VNDR_IE_PRBRSP_FLAG,
                BRCMF_VNDR_IE_BEACON_FLAG
        };
        int i;
 
+       if (vif->wdev.iftype == NL80211_IFTYPE_AP)
+               brcmf_vif_set_mgmt_ie(vif, BRCMF_VNDR_IE_ASSOCRSP_FLAG, NULL, 0);
+       else
+               brcmf_vif_set_mgmt_ie(vif, BRCMF_VNDR_IE_PRBREQ_FLAG, NULL, 0);
+
        for (i = 0; i < ARRAY_SIZE(pktflags); i++)
                brcmf_vif_set_mgmt_ie(vif, pktflags[i], NULL, 0);