You are not logged in.
@loqs yes unpatched wpa_supplicant 2.10 works for me.
git bisecting yield:
41638606054a09867fe3f9a2b5523aa4678cbfa5 is the first bad commit
commit 41638606054a09867fe3f9a2b5523aa4678cbfa5 (HEAD)
Author: Vinayak Yadawad <vinayak.yadawad@broadcom.com>
Date: Thu Jun 30 09:37:53 2022 +0530
Mark authorization completed on driver indication during 4-way HS offload
In case of drivers supporting 4-way handshake offload, mark port
authorized and state completion only if the driver advertizes authorized
state in the connect event. Otherwise there are fair chances of the
driver port authorization API getting called while 4-way handshake is in
progress at the lower layer.
In order to avoid this possible race condition always update port
authorization and supplicant state WPA_COMPLETED setting from
EVENT_PORT_AUTHORIZED context when the driver is done with the 4-way
handshake.
Signed-off-by: Vinayak Yadawad <vinayak.yadawad@broadcom.com>
wpa_supplicant/events.c | 25 +++++++++++++++++--------
1 file changed, 17 insertions(+), 8 deletions(-)
the git diff:
diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c
index 35f3694a0..788ef5bdf 100644
--- a/wpa_supplicant/events.c
+++ b/wpa_supplicant/events.c
@@ -3671,14 +3671,23 @@ static void wpa_supplicant_event_assoc(struct wpa_supplicant *wpa_s,
eapol_sm_notify_eap_success(wpa_s->eapol, true);
} else if ((wpa_s->drv_flags & WPA_DRIVER_FLAGS_4WAY_HANDSHAKE_PSK) &&
wpa_key_mgmt_wpa_psk(wpa_s->key_mgmt)) {
- /*
- * We are done; the driver will take care of RSN 4-way
- * handshake.
- */
- wpa_supplicant_cancel_auth_timeout(wpa_s);
- wpa_supplicant_set_state(wpa_s, WPA_COMPLETED);
- eapol_sm_notify_portValid(wpa_s->eapol, true);
- eapol_sm_notify_eap_success(wpa_s->eapol, true);
+ if (already_authorized) {
+ /*
+ * We are done; the driver will take care of RSN 4-way
+ * handshake.
+ */
+ wpa_supplicant_cancel_auth_timeout(wpa_s);
+ wpa_supplicant_set_state(wpa_s, WPA_COMPLETED);
+ eapol_sm_notify_portValid(wpa_s->eapol, true);
+ eapol_sm_notify_eap_success(wpa_s->eapol, true);
+ } else {
+ /* Update port, WPA_COMPLETED state from the
+ * EVENT_PORT_AUTHORIZED handler when the driver is done
+ * with the 4-way handshake.
+ */
+ wpa_msg(wpa_s, MSG_DEBUG,
+ "ASSOC INFO: wait for driver port authorized indication");
+ }
} else if ((wpa_s->drv_flags & WPA_DRIVER_FLAGS_4WAY_HANDSHAKE_8021X) &&
wpa_key_mgmt_wpa_ieee8021x(wpa_s->key_mgmt)) {
/*
after reverting the bad commit wpa_supplicant 2.11 works fine again.
Edit:
searching for the commit id I found this two reports:
https://lore.kernel.org/all/ac9f0cb4-ba … tmail.com/
https://lists.infradead.org/pipermail/h … 42893.html
Last edited by saf1 (2024-08-09 22:19:50)
Offline
Thank you for performing the bisection and locating the upstream reports. Do you need help testing the proposed kernel fix wifi: brcmfmac: cfg80211: Handle SSID based pmksa deletion?
Offline
@loqs I applied the patch to linux 6.10.3-arch1-2, and checked the "src/linux-6.10.3/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c" and the patch applied succefully, but wpa_supplicant 2:2.11-2 still time-out trying to authenticate.
Offline
Does Disabling offloading in brcmfmac with "brcmfmac.feature_disable=0x82000" allow wpa_supplicant 2:2.11-2 to work correctly?
Offline
yes booting linux 6.10.3.arch1-2 with kernel option brcmfmac.feature_disable=0x82000
allow wpa_supplicant 2:2.11-2 to work.
Offline
Can you try incrementing the pkgrel of the linux PKGBUILD by .1 then build and install that package and then check `modinfo brcmfmac` that the filename and vermagic fields report the incremented version?
Offline
linux 6.10.3.arch1-3
linux-headers 6.10.3.arch1-3
filename: /lib/modules/6.10.3-arch1-3/kernel/drivers/net/wireless/broadcom/brcm80211/brcmfmac/brcmfmac.ko.zst
license: Dual BSD/GPL
description: Broadcom 802.11 wireless LAN fullmac driver.
author: Broadcom Corporation
firmware: brcm/brcmfmac*-sdio.*.bin
firmware: brcm/brcmfmac*-sdio.*.txt
firmware: brcm/brcmfmac43752-sdio.clm_blob
firmware: brcm/brcmfmac43752-sdio.bin
firmware: brcm/brcmfmac43012-sdio.clm_blob
firmware: brcm/brcmfmac43012-sdio.bin
firmware: brcm/brcmfmac4373-sdio.clm_blob
firmware: brcm/brcmfmac4373-sdio.bin
firmware: brcm/brcmfmac4359-sdio.bin
firmware: brcm/brcmfmac4356-sdio.clm_blob
firmware: brcm/brcmfmac4356-sdio.bin
firmware: brcm/brcmfmac4354-sdio.clm_blob
firmware: brcm/brcmfmac4354-sdio.bin
firmware: brcm/brcmfmac43456-sdio.bin
firmware: brcm/brcmfmac43455-sdio.clm_blob
firmware: brcm/brcmfmac43455-sdio.bin
firmware: brcm/brcmfmac43439-sdio.clm_blob
firmware: brcm/brcmfmac43439-sdio.bin
firmware: brcm/brcmfmac43430b0-sdio.bin
firmware: brcm/brcmfmac43430-sdio.clm_blob
firmware: brcm/brcmfmac43430-sdio.bin
firmware: brcm/brcmfmac43430a0-sdio.bin
firmware: brcm/brcmfmac4339-sdio.bin
firmware: brcm/brcmfmac43362-sdio.bin
firmware: brcm/brcmfmac4335-sdio.bin
firmware: brcm/brcmfmac43340-sdio.bin
firmware: brcm/brcmfmac4334-sdio.bin
firmware: brcm/brcmfmac4330-sdio.bin
firmware: brcm/brcmfmac4329-sdio.bin
firmware: brcm/brcmfmac43241b5-sdio.bin
firmware: brcm/brcmfmac43241b4-sdio.bin
firmware: brcm/brcmfmac43241b0-sdio.bin
firmware: brcm/brcmfmac43143-sdio.bin
firmware: brcm/brcmfmac4373.bin
firmware: brcm/brcmfmac43569.bin
firmware: brcm/brcmfmac43242a.bin
firmware: brcm/brcmfmac43236b.bin
firmware: brcm/brcmfmac43143.bin
firmware: brcm/brcmfmac*-pcie.*.txcap_blob
firmware: brcm/brcmfmac*-pcie.*.clm_blob
firmware: brcm/brcmfmac*-pcie.*.bin
firmware: brcm/brcmfmac*-pcie.*.txt
firmware: brcm/brcmfmac*-pcie.txt
firmware: brcm/brcmfmac4387c2-pcie.clm_blob
firmware: brcm/brcmfmac4387c2-pcie.bin
firmware: brcm/brcmfmac4378b3-pcie.clm_blob
firmware: brcm/brcmfmac4378b3-pcie.bin
firmware: brcm/brcmfmac4378b1-pcie.clm_blob
firmware: brcm/brcmfmac4378b1-pcie.bin
firmware: brcm/brcmfmac4377b3-pcie.clm_blob
firmware: brcm/brcmfmac4377b3-pcie.bin
firmware: brcm/brcmfmac4371-pcie.bin
firmware: brcm/brcmfmac4366c-pcie.bin
firmware: brcm/brcmfmac4366b-pcie.bin
firmware: brcm/brcmfmac4365c-pcie.bin
firmware: brcm/brcmfmac4365b-pcie.bin
firmware: brcm/brcmfmac4364b3-pcie.clm_blob
firmware: brcm/brcmfmac4364b3-pcie.bin
firmware: brcm/brcmfmac4364b2-pcie.clm_blob
firmware: brcm/brcmfmac4364b2-pcie.bin
firmware: brcm/brcmfmac4359c-pcie.bin
firmware: brcm/brcmfmac4359-pcie.bin
firmware: brcm/brcmfmac4358-pcie.bin
firmware: brcm/brcmfmac43570-pcie.clm_blob
firmware: brcm/brcmfmac43570-pcie.bin
firmware: brcm/brcmfmac4356-pcie.clm_blob
firmware: brcm/brcmfmac4356-pcie.bin
firmware: brcm/brcmfmac4355c1-pcie.clm_blob
firmware: brcm/brcmfmac4355c1-pcie.bin
firmware: brcm/brcmfmac4355-pcie.clm_blob
firmware: brcm/brcmfmac4355-pcie.bin
firmware: brcm/brcmfmac4350c2-pcie.bin
firmware: brcm/brcmfmac4350-pcie.bin
firmware: brcm/brcmfmac43602-pcie.bin
srcversion: 0739C84DB1800CC626874FB
alias: sdio:c*v04B4dBD3D*
alias: sdio:c*v02D0d4355*
alias: sdio:c*v02D0dAAE8*
alias: sdio:c*v02D0dA804*
alias: sdio:c*v02D0d4373*
alias: sdio:c*v02D0d4359*
alias: sdio:c*v02D0d4356*
alias: sdio:c*v02D0d4354*
alias: sdio:c*v02D0dA9BF*
alias: sdio:c*v02D0d4345*
alias: sdio:c*v02D0dA9AF*
alias: sdio:c*v02D0dA9A6*
alias: sdio:c*v02D0d4339*
alias: sdio:c*v02D0d4335*
alias: sdio:c*v02D0dA9A4*
alias: sdio:c*v02D0dA962*
alias: sdio:c*v02D0dA94D*
alias: sdio:c*v02D0dA94C*
alias: sdio:c*v02D0d4334*
alias: sdio:c*v02D0d4330*
alias: sdio:c*v02D0d4329*
alias: sdio:c*v02D0d4324*
alias: sdio:c*v02D0dA887*
alias: usb:v04B4p0BDCd*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v0A5Cp0BDCd*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v043Ep3101d*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v04B4pBD29d*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v13B1p0039d*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v0A5CpBD27d*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v0A5CpBD1Fd*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v0A5CpBD17d*dc*dsc*dp*ic*isc*ip*in*
alias: usb:v0A5CpBD1Ed*dc*dsc*dp*ic*isc*ip*in*
alias: pci:v000014E4d00004433sv*sd*bc02sc80i*
alias: pci:v000014E4d00004425sv*sd*bc02sc80i*
alias: pci:v000014E4d00004488sv*sd*bc02sc80i*
alias: pci:v000014E4d00004415sv*sd*bc02sc80i*
alias: pci:v000014E4d0000440Dsv*sd*bc02sc80i*
alias: pci:v000014E4d000043C5sv*sd*bc02sc80i*
alias: pci:v000014E4d000043C4sv*sd*bc02sc80i*
alias: pci:v000014E4d000043C3sv*sd*bc02sc80i*
alias: pci:v000014E4d00004365sv000014E4sd00004365bc02sc80i*
alias: pci:v000014E4d000043CCsv*sd*bc02sc80i*
alias: pci:v000014E4d000043CBsv*sd*bc02sc80i*
alias: pci:v000014E4d000043CAsv*sd*bc02sc80i*
alias: pci:v000014E4d00004464sv*sd*bc02sc80i*
alias: pci:v000014E4d0000AA52sv*sd*bc02sc80i*
alias: pci:v000014E4d000043BCsv*sd*bc02sc80i*
alias: pci:v000014E4d000043BBsv*sd*bc02sc80i*
alias: pci:v000014E4d000043BAsv*sd*bc02sc80i*
alias: pci:v000014E4d000043EFsv*sd*bc02sc80i*
alias: pci:v000014E4d000043E9sv*sd*bc02sc80i*
alias: pci:v000014E4d0000AA31sv*sd*bc02sc80i*
alias: pci:v000014E4d000043D9sv*sd*bc02sc80i*
alias: pci:v000014E4d000043D3sv*sd*bc02sc80i*
alias: pci:v000014E4d000043ECsv*sd*bc02sc80i*
alias: pci:v000014E4d000043DCsv*sd*bc02sc80i*
alias: pci:v000014E4d00004354sv*sd*bc02sc80i*
alias: pci:v000014E4d00004355sv000014E4sd00004355bc02sc80i*
alias: pci:v000014E4d000043A3sv*sd*bc02sc80i*
depends: mmc_core,brcmutil,cfg80211
retpoline: Y
intree: Y
name: brcmfmac
vermagic: 6.10.3-arch1-3 SMP preempt mod_unload
sig_id: PKCS#7
signer: Build time autogenerated kernel key
sig_key: 30:F5:3A:99:CC:68:0B:43:12:53:0D:B8:E4:E4:90:16:A7:A0:4D:1B
sig_hashalgo: sha512
signature: 30:66:02:31:00:97:9F:01:40:FB:46:0C:2F:77:D2:81:F9:65:4A:04:
AB:E3:93:24:84:A1:DC:13:53:95:E9:F8:C8:32:46:EE:18:5B:D1:3B:
EB:1E:0C:B2:36:BE:A3:C4:1A:B7:D0:C2:0E:02:31:00:B7:AC:B2:EC:
1D:D1:35:18:6A:EF:27:B5:AF:73:80:E5:84:E7:06:46:D0:25:E5:70:
6E:81:C2:C8:36:EE:AA:18:73:C4:8F:EA:DA:E9:C5:2C:6F:28:C2:E4:
64:E4:D2:24
parm: txglomsz:Maximum tx packet chain size [SDIO] (int)
parm: debug:Level of debug output (int)
parm: p2pon:Enable legacy p2p management functionality (int)
parm: feature_disable:Disable features (int)
parm: alternative_fw_path:Alternative firmware path (string)
parm: fcmode:Mode of firmware signalled flow control (int)
parm: roamoff:Do not use internal roaming engine (int)
parm: iapp:Enable partial support for the obsoleted Inter-Access Point Protocol (int)
parm: ignore_probe_fail:always succeed probe for debugging (int)
Last edited by saf1 (2024-08-11 12:21:30)
Offline
Adding brcmfmac.feature_disable=0x82000 does workaround the issue for me as well.
This seems like a better workaround than holding back wpa_supplicant, but let me know if it isn't.
Desktop: Ryzen 7 1800X | AMD 7800XT | KDE Plasma
MacbookPro-2012 | MATE
Offline
wifi-brcmfmac-cfg80211-handle-ssid-based-pmksa-deletion.patch is queued for 6.10.7. If that still has the issue you will need to report that back upstream.
Offline
I removed the kernel parameter after updating to 6.10.7 and Wi-Fi is working fine on my 2012 MacBook Pro, so seems like it's resolved.
Desktop: Ryzen 7 1800X | AMD 7800XT | KDE Plasma
MacbookPro-2012 | MATE
Offline
I upgraded kernel to 6.10.7 and wpa_supplicant to 2.11-2, but after reboot I got the same error. I had to downgrade wpa_supplicant to get WiFi working again on my mid-2015 MacBook Pro.
Offline
Are you using the brcmfmac module?
uname -a
lsmod | grep brcmfmac
Does "brcmfmac.feature_disable=0x82000" allow you to avoid the problem?
Online
uname -a
Linux LT150618-71 6.10.7-arch1-1 #1 SMP PREEMPT_DYNAMIC Thu, 29 Aug 2024 16:48:57 +0000 x86_64 GNU/Linux
lsmod | grep brcmfmac
brcmfmac_wcc 12288 0
brcmfmac 602112 1 brcmfmac_wcc
brcmutil 20480 1 brcmfmac
cfg80211 1372160 1 brcmfmac
mmc_core 270336 1 brcmfmac
I can avoid the problem adding "brcmfmac.feature_disable=0x82000" to kernel parameters and I can definitely live with that.
Offline