Re: [PATCH] wifi: brcmfmac: configure SAE PWE method for external SAE AP
From: Bogdan Nicolae
Date: Thu Jul 30 2026 - 00:34:04 EST
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 <bogdan.nicolae@xxxxxxxxx> 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 <arend.vanspriel@xxxxxxxxxxxx> wrote:
>>
>> On 29/07/2026 13:48, Bogdan Nicolae wrote:
>> >> On Wed, Jul 29, 2026, 04:48 Arend van Spriel
>> >> <arend.vanspriel@xxxxxxxxxxxx <mailto:arend.vanspriel@xxxxxxxxxxxx>> 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