From f0a9a139bb64df3c293a8cdb94dc87c9f5213611 Mon Sep 17 00:00:00 2001 From: Darren Li Date: Thu, 25 Nov 2021 22:15:31 -0600 Subject: [PATCH 080/296] brcmfmac: extsae supports SAE OKC roam extsae supports SAE OKC roam Signed-off-by: Darren Li Darren.Li@infineon.com --- .../broadcom/brcm80211/brcmfmac/cfg80211.c | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c index 7ea9770a30f3..db225537d3c0 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c @@ -2235,6 +2235,17 @@ brcmf_set_key_mgmt(struct net_device *ndev, struct cfg80211_connect_params *sme) brcmf_dbg(INFO, "get okc_enable (%d)\n", okc_enable); profile->is_okc = okc_enable; } + } else if (profile->use_fwsup != BRCMF_PROFILE_FWSUP_SAE && + (val == WPA3_AUTH_SAE_PSK)) { + brcmf_dbg(INFO, "not using SAE offload\n"); + err = brcmf_fil_bsscfg_int_get(netdev_priv(ndev), "okc_enable", + &okc_enable); + if (err) { + bphy_err(drvr, "get okc_enable failed (%d)\n", err); + } else { + brcmf_dbg(INFO, "get okc_enable (%d)\n", okc_enable); + profile->is_okc = okc_enable; + } } if (!brcmf_feat_is_enabled(ifp, BRCMF_FEAT_MFP)) @@ -4493,6 +4504,17 @@ brcmf_cfg80211_set_pmksa(struct wiphy *wiphy, struct net_device *ndev, err = brcmf_update_pmklist(cfg, ifp); + if (pmksa->pmk_len) { + if (ifp->vif->profile.is_okc) { + err = brcmf_fil_iovar_data_set(ifp, "okc_info_pmk", pmksa->pmk, + pmksa->pmk_len); + if (err < 0) + bphy_err(drvr, "okc_info_pmk iovar failed: ret=%d\n", err); + } else { + brcmf_set_pmk(ifp, pmksa->pmk, pmksa->pmk_len); + } + } + brcmf_dbg(TRACE, "Exit\n"); return err; } -- 2.25.1