From e8f08fa57153789557130efe08b3112a2f35f330 Mon Sep 17 00:00:00 2001 From: Carter Chen Date: Mon, 22 May 2023 09:50:03 -0500 Subject: [PATCH 170/296] brcmfmac: add protection for firmware doesn't have extsae_pwe iovar some firmware of chips might not have extsae_pwe iovar. Checking if the firmware supports extsae_pwe iovar. and if the wpa_auth is not SAE, ignore to check the value. Signed-off-by: Carter Chen --- .../broadcom/brcm80211/brcmfmac/cfg80211.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c index fe466d3fed3d..d1de0346425c 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c @@ -5726,8 +5726,23 @@ brcmf_parse_configure_sae_pwe(struct brcmf_if *ifp, const struct brcmf_tlv *supp_rate_ie; u8 ie_len, i; bool support_sae_h2e = false, must_sae_h2e = false; + u32 wpa_auth = 0; + + /* get configured wpa_auth */ + err = brcmf_fil_bsscfg_int_get(ifp, "wpa_auth", &wpa_auth); + if ((wpa_auth & WPA3_AUTH_SAE_PSK) == 0) { + /* wpa_auth is not SAE, ignore sae_pwe. */ + brcmf_dbg(INFO, "wpa_auth is not SAE:0x%x\n", wpa_auth); + return 0; + } if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_SAE_EXT)) { + err = brcmf_fil_iovar_int_set(ifp, "extsae_pwe", 0); + if (err) { + brcmf_err("extsae_pwe iovar is not supported\n"); + return -EOPNOTSUPP; + } + rsnx_ie = brcmf_parse_tlvs((u8 *)settings->beacon.tail, settings->beacon.tail_len, WLAN_EID_RSNX); -- 2.25.1