You are not logged in.

#26 2024-08-09 21:00:40

saf1
Member
Registered: 2011-04-04
Posts: 23

Re: WiFi fails to connect after wpa_supplicant update

@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

#27 2024-08-09 23:59:27

loqs
Member
Registered: 2014-03-06
Posts: 18,078

Re: WiFi fails to connect after wpa_supplicant update

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

#28 2024-08-10 15:39:45

saf1
Member
Registered: 2011-04-04
Posts: 23

Re: WiFi fails to connect after wpa_supplicant update

@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

#29 2024-08-10 17:20:18

loqs
Member
Registered: 2014-03-06
Posts: 18,078

Re: WiFi fails to connect after wpa_supplicant update

Does Disabling offloading in brcmfmac with "brcmfmac.feature_disable=0x82000" allow wpa_supplicant 2:2.11-2 to work correctly?

Offline

#30 2024-08-10 19:10:22

saf1
Member
Registered: 2011-04-04
Posts: 23

Re: WiFi fails to connect after wpa_supplicant update

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

#31 2024-08-10 22:46:28

loqs
Member
Registered: 2014-03-06
Posts: 18,078

Re: WiFi fails to connect after wpa_supplicant update

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

#32 2024-08-11 12:18:13

saf1
Member
Registered: 2011-04-04
Posts: 23

Re: WiFi fails to connect after wpa_supplicant update

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

#33 2024-08-13 21:01:19

Nikolai5
Member
From: North West, England, UK
Registered: 2024-01-27
Posts: 185

Re: WiFi fails to connect after wpa_supplicant update

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

#34 2024-08-25 21:23:47

loqs
Member
Registered: 2014-03-06
Posts: 18,078

Re: WiFi fails to connect after wpa_supplicant update

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

#35 2024-08-30 21:23:50

Nikolai5
Member
From: North West, England, UK
Registered: 2024-01-27
Posts: 185

Re: WiFi fails to connect after wpa_supplicant update

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

#36 2024-08-30 23:14:19

Tha-Fox
Member
Registered: 2010-11-25
Posts: 24
Website

Re: WiFi fails to connect after wpa_supplicant update

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

#37 2024-08-31 06:54:49

seth
Member
Registered: 2012-09-03
Posts: 59,043

Re: WiFi fails to connect after wpa_supplicant update

Are you using the brcmfmac module?

uname -a
lsmod | grep brcmfmac

Does "brcmfmac.feature_disable=0x82000" allow you to avoid the problem?

Online

#38 2024-08-31 11:28:05

Tha-Fox
Member
Registered: 2010-11-25
Posts: 24
Website

Re: WiFi fails to connect after wpa_supplicant update

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

Board footer

Powered by FluxBB