Re: [PATCH] wifi: brcmfmac: configure SAE PWE method for external SAE AP

Bogdan Nicolae <[email protected]>
Newsgroups org.kernel.vger.linux-wireless,dev.linux.lists.brcm80211,org.kernel.vger.linux-kernel
Message-ID <CA+ORkNSG45LrTu09AiHNwTZ882Yybq-3E-=enwe+2eA36fEO4g@mail.gmail.com>
Gokul,

Looks like this is also missing, can you please add it in your patch:

diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
index d32b35ce0..455f5619f 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
@@ -77,6 +77,11 @@

#define        DOT11_BCN_PRB_FIXED_LEN         12      /* beacon/probe
fixed length */

+#define WL_IOV_OP_BSSCFG_DISABLE               0
+#define WL_IOV_OP_BSSCFG_ENABLE                        1
+#define WL_IOV_OP_MANUAL_STA_BSSCFG_CREATE     2
+#define WL_IOV_OP_MANUAL_AP_BSSCFG_CREATE      3
+
#define BRCMF_SCAN_JOIN_ACTIVE_DWELL_TIME_MS   320
#define BRCMF_SCAN_JOIN_PASSIVE_DWELL_TIME_MS  400
#define BRCMF_SCAN_JOIN_PROBE_INTERVAL_MS      20
@@ -5260,6 +5265,19 @@ brcmf_cfg80211_start_ap(struct wiphy *wiphy,
struct net_device *ndev,
               if ((brcmf_feat_is_enabled(ifp, BRCMF_FEAT_MBSS)) && (!mbss))
                       brcmf_fil_iovar_int_set(ifp, "mbss", 1);

+               if (!test_bit(BRCMF_VIF_STATUS_AP_CREATED,
&ifp->vif->sme_state)) {
+                       bss_enable.bsscfgidx = cpu_to_le32(ifp->bsscfgidx);
+                       bss_enable.enable =
+                               cpu_to_le32(WL_IOV_OP_MANUAL_AP_BSSCFG_CREATE);
+                       err = brcmf_fil_iovar_data_set(ifp, "bss", &bss_enable,
+                                                      sizeof(bss_enable));
+                       if (err < 0) {
+                               bphy_err(drvr, "bss_enable config failed %d\n",
+                                        err);
+                               goto exit;
+                       }
+               }
+
               err = brcmf_fil_cmd_int_set(ifp, BRCMF_C_SET_AP, 1);
               if (err < 0) {
                       bphy_err(drvr, "setting AP mode failed %d\n",

Thanks,
Bogdan

On Wed, Jul 29, 2026 at 8:19 AM Bogdan Nicolae <[email protected]> wrote:
>
> Gokul,
>
> Great to hear. Are there any other changes you are planning to submit?
> I found this to be the minimal working config at least for WPA3 personal, but would like to know if I am missing anything else.
>
> Thanks,
> Bogdan
>
> On Wed, Jul 29, 2026, 07:28 Arend van Spriel <[email protected]> wrote:
>>
>> On 29/07/2026 13:48, Bogdan Nicolae wrote:
>> >> On Wed, Jul 29, 2026, 04:48 Arend van Spriel
>> >> <[email protected] <mailto:[email protected]>> wrote:
>> >>
>> >>     On 29/07/2026 07:34, Bogdan Nicolae wrote:
>> >>      > When bringing up a WPA3-SAE SoftAP with external (user space)
>> >>     SAE, the
>> >>      > driver never told the firmware which SAE Password Element (PWE)
>> >>     method to
>> >>      > accept. The firmware was observed to corrupt its heap over time
>> >>     due to
>> >>      > this omission, leading to firmware trap (data abort in heap
>> >>     allocator).
>> >>      >
>> >>      > Parse the beacon IEs on start_ap() and set the extsae_pwe iovar
>> >>      > accordingly: 2 when the RSNX IE advertises H2E, 1 when an H2E-only
>> >>      > membership selector is present, 0 otherwise. This matches the
>> >>     behaviour
>> >>      > of the upstream/vendor driver and only applies to SAE-capable APs
>> >>     when
>> >>      > external SAE is supported.
>> >>
>> >>     This makes sense, but may I ask what device do you have? Suspect it
>> >>     is a
>> >>     Cypress/Infineon chip. I could not find the iovar in our (Broadcom bca)
>> >>     code base so I suspect it is vendor specific.
>> > Hi Arend,
>> >
>> > Indeed, this is a bcm43455 as found on Raspberry Pi SoCs.
>> Than we should only invoke the parse function for cyw vendor.
>>
>> Regards,
>> Arend
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.