FS#57327 - [linux] After updating to linux 4.15 wifi does not work

Attached to Project: Arch Linux
Opened by Antonio Corbi bellot (acorbi) - Thursday, 01 February 2018, 19:53 GMT
Last edited by Jan Alexander Steffens (heftig) - Thursday, 08 February 2018, 21:42 GMT
Task Type Bug Report
Category Kernel
Status Closed
Assigned To Tobias Powalowski (tpowa)
Jan Alexander Steffens (heftig)
Architecture x86_64
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No

Details

Description:

After upgrading to linux-4.15-1 x86_64, wifi provided by b43 module does not work.
dmesg says this:
[ 81.432184] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 81.437708] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 81.437766] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[ 81.437768] cfg80211: failed to load regulatory.db
[ 81.641524] Broadcom 43xx driver loaded [ Features: NLS ]


Rebooting the laptop with linux-lts makes wifi work again.
This task depends upon

Closed by  Jan Alexander Steffens (heftig)
Thursday, 08 February 2018, 21:42 GMT
Reason for closing:  Fixed
Additional comments about closing:  linux 4.15.2-2
Comment by Alastair Hughes (pypi) - Monday, 05 February 2018, 21:00 GMT
Related:
https://patchwork.kernel.org/patch/10185397/
https://bbs.archlinux.org/viewtopic.php?id=234122
linux-kernel@vger.kernel.org/msg1602574.html"> https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1602574.html

I can confirm that the patch works.
Comment by Jeff Hodd (jghodd) - Wednesday, 07 February 2018, 19:53 GMT
Still having b43 issues with 4.15.

dmesg for 4.14:

[ 13.686803] ssb: Found chip with id 0x4312, rev 0x01 and package 0x00
[ 13.686823] ssb: Core 0 found: ChipCommon (cc 0x800, rev 0x16, vendor 0x4243)
[ 13.686841] ssb: Core 1 found: IEEE 802.11 (cc 0x812, rev 0x0F, vendor 0x4243)
[ 13.686859] ssb: Core 2 found: PCMCIA (cc 0x80D, rev 0x0A, vendor 0x4243)
[ 13.686876] ssb: Core 3 found: PCI-E (cc 0x820, rev 0x09, vendor 0x4243)
[ 13.773742] ssb: Sonics Silicon Backplane found on PCI device 0000:02:00.0
[ 16.588933] b43-phy0: Broadcom 4312 WLAN found (core revision 15)
[ 16.630079] b43-phy0: Found PHY: Analog 6, Type 5 (LP), Revision 1
[ 16.630098] b43-phy0: Found Radio: Manuf 0x17F, ID 0x2062, Revision 2, Version 0
[ 16.643726] Broadcom 43xx driver loaded [ Features: PNLS ]
[ 23.993443] b43-phy0: Loading firmware version 410.2160 (2007-05-26 15:32:10)
[ 36.313650] b43-phy0: Loading firmware version 410.2160 (2007-05-26 15:32:10)
[ 67.152331] b43-phy0: Loading firmware version 410.2160 (2007-05-26 15:32:10)
[ 75.527970] wlan0: authenticate with a0:a3:e2:fd:59:77
[ 75.559912] wlan0: send auth to a0:a3:e2:fd:59:77 (try 1/3)
[ 75.561598] wlan0: authenticated
[ 75.563917] b43 ssb0:0 wlan0: disabling HT/VHT due to WEP/TKIP use
[ 75.566185] wlan0: associate with a0:a3:e2:fd:59:77 (try 1/3)
[ 75.568497] wlan0: RX AssocResp from a0:a3:e2:fd:59:77 (capab=0x411 status=0 aid=3)
[ 75.569030] wlan0: associated

dmesg for 4.15:

[ 55.761553] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[ 55.844506] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[ 55.846531] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[ 55.846535] cfg80211: failed to load regulatory.db

lspci -vv for 4.14:

02:00.0 Network controller: Broadcom Limited BCM4312 802.11b/g LP-PHY (rev 01)
Subsystem: Broadcom Limited BCM4312 802.11b/g LP-PHY
Physical Slot: 1
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 17
Region 0: Memory at 80100000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [40] Power Management version 3
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=2 PME-
Capabilities: [58] Vendor Specific Information: Len=78 <?>
Capabilities: [e8] MSI: Enable- Count=1/1 Maskable- 64bit+
Address: 0000000000000000 Data: 0000
Capabilities: [d0] Express (v1) Endpoint, MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 6.500W
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
RlxdOrd- ExtTag+ PhantFunc- AuxPwr- NoSnoop-
MaxPayload 128 bytes, MaxReadReq 128 bytes
DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr- TransPend-
LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <4us, L1 <64us
ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp-
LnkCtl: ASPM L0s L1 Enabled; RCB 64 bytes Disabled- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
Capabilities: [100 v1] Advanced Error Reporting
UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
CESta: RxErr+ BadTLP+ BadDLLP- Rollover- Timeout+ NonFatalErr-
CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
AERCap: First Error Pointer: 14, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn-
MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
HeaderLog: 00000000 00000000 00000000 00000000
Capabilities: [13c v1] Virtual Channel
Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
Arb: Fixed- WRR32- WRR64- WRR128-
Ctrl: ArbSelect=Fixed
Status: InProgress-
VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
Status: NegoPending- InProgress-
Capabilities: [160 v1] Device Serial Number 86-01-2c-ff-ff-5c-88-25
Capabilities: [16c v1] Power Budgeting <?>
Kernel driver in use: b43-pci-bridge
Kernel modules: ssb

lspci -vv for 4.15:

02:00.0 Network controller: Broadcom Limited BCM4312 802.11b/g LP-PHY (rev 01)
Subsystem: Broadcom Limited BCM4312 802.11b/g LP-PHY
Physical Slot: 1
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 10
Region 0: Memory at 80100000 (64-bit, non-prefetchable) [size=16K]
Capabilities: [40] Power Management version 3
Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=2 PME-
Capabilities: [58] Vendor Specific Information: Len=78 <?>
Capabilities: [e8] MSI: Enable- Count=1/1 Maskable- 64bit+
Address: 0000000000000000 Data: 0000
Capabilities: [d0] Express (v1) Endpoint, MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 6.500W
DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
RlxdOrd- ExtTag+ PhantFunc- AuxPwr- NoSnoop-
MaxPayload 128 bytes, MaxReadReq 128 bytes
DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr- TransPend-
LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <4us, L1 <64us
ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp-
LnkCtl: ASPM L0s L1 Enabled; RCB 64 bytes Disabled- CommClk+
ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
Capabilities: [100 v1] Advanced Error Reporting
UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UEMsk: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
CESta: RxErr+ BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
AERCap: First Error Pointer: 14, ECRCGenCap+ ECRCGenEn- ECRCChkCap+ ECRCChkEn-
MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
HeaderLog: 00000000 00000000 00000000 00000000
Capabilities: [13c v1] Virtual Channel
Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
Arb: Fixed- WRR32- WRR64- WRR128-
Ctrl: ArbSelect=Fixed
Status: InProgress-
VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=ff
Status: NegoPending- InProgress-
Capabilities: [160 v1] Device Serial Number 86-01-2c-ff-ff-5c-88-25
Capabilities: [16c v1] Power Budgeting <?>

I also checked the kernel configs for both the working 4.14 kernel and the not-working 4.15 kernel and found these differences:

8,10d7
< CONFIG_SSB_PCIHOST_POSSIBLE=y
< CONFIG_SSB_PCIHOST=y
< CONFIG_SSB_B43_PCI_BRIDGE=y
17,18d13
< CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
< CONFIG_SSB_DRIVER_PCICORE=y
21c16
< # CONFIG_USB_HCD_SSB is not set
---
> CONFIG_USB_HCD_SSB=m

The "<" lines are 4.14.

It's interesting to note that SSB is not being recognized by the 4.15 kernel, and that only CONFIG_USB_HCD_SSB is set. All of the other SSB-related flags are missing.
Comment by Jeff Hodd (jghodd) - Wednesday, 07 February 2018, 21:38 GMT
Tested 4.15.1-3 and still no happy ending. SSB is not being recognized by the kernel and, by extension, the b43 driver won't load. Looking at the config file, it seems that all references to SSB + PCI are missing (CONFIG_SSB_PCIHOST_POSSIBLE, CONFIG_SSB_PCIHOST, CONFIG_SSB_B43_PCI_BRIDGE, CONFIG_SSB_DRIVER_PCICORE_POSSIBLE, CONFIG_SSB_DRIVER_PCICORE).
Comment by Jeff Hodd (jghodd) - Thursday, 08 February 2018, 18:27 GMT
Ok. Didn't realise you guys hadn't actually included the above patch in your release.

I went ahead and created the patch file, as well as adding the following kernel config flags:

CONFIG_SSB_PCIHOST_POSSIBLE=y
CONFIG_SSB_PCIHOST=y
CONFIG_SSB_B43_PCI_BRIDGE=y
CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
CONFIG_SSB_DRIVER_PCICORE=y

A 4.15.2 build with the ssb/Kconfig patch and the additional config file flags worked and the ssb (and b43) drivers were loaded as expected.

According to a kernel.org patchwork thread on this issue, James Hogan states that "Too late, Dave already sent his last pull request for 4.15. This will be in 4.16.", referring to the ssb/Kconfig patch (https://patchwork.kernel.org/patch/10185397/).

Are you guys going to include this patch in Arch 4.15 kernel releases in the mean time? If not, why not? A lot of people use the b43 wifi driver and it would be a big issue not to include them in the 4.15 kernel release cycle. I would have to tell my users to downgrade to 4.14.15 and set the Ignore parameter in pacman.conf to prevent any updates to linux, linux-headers and linux-docs. This could turn out to be a pretty significant issue. My only other option is to provide my own kernel builds via my own repository, but that would have to include all kinds of contortions to make sure users with broadcom 43xx wifi actually get my builds and never get yours.

This really needs to be included in Arch kernel builds.

Loading...