Kernel oops with sparklan card
I experienced a series of lockups on my Librem 5 the other day in a row that required I long-press the power button and boot from scratch to resolve. After the last one I managed to pull logs. It appears the first sign of trouble is related to the sparklan card:
Dec 28 10:32:42 pureos kernel: brcmfmac: brcmf_sdio_bus_sleep: error while changing bus sleep state -110
Dec 28 10:32:42 pureos kernel: brcmfmac: brcmf_sdio_txfail: sdio error, abort command and terminate frame
Dec 28 10:32:43 pureos wpa_supplicant[790]: wlan0: CTRL-EVENT-DISCONNECTED bssid=20:27:22:d5:f1:c8 reason=1 locally_generated=1
Dec 28 10:32:43 pureos kernel: ieee80211 phy3: brcmf_fil_cmd_data: bus is down. we have nothing to do.
Dec 28 10:32:43 pureos kernel: ieee80211 phy3: send_key_to_dongle: wsec_key error (-5)
Dec 28 10:32:43 pureos kernel: ieee80211 phy3: brcmf_fil_cmd_data: bus is down. we have nothing to do.
Dec 28 10:32:43 pureos kernel: ieee80211 phy3: send_key_to_dongle: wsec_key error (-5)
Dec 28 10:32:43 pureos avahi-daemon[731]: Interface wlan0.IPv6 no longer relevant for mDNS.
Dec 28 10:32:43 pureos avahi-daemon[731]: Leaving mDNS multicast group on interface wlan0.IPv6 with address 2001:5a8:64a:f02:f134:c2c8:c23e:3966.
Dec 28 10:32:43 pureos systemd-networkd[488]: wlan0: Link DOWN
Dec 28 10:32:43 pureos systemd-networkd[488]: wlan0: Lost carrier
Dec 28 10:32:43 pureos kernel: brcmfmac: brcmf_sdio_bus_sleep: error while changing bus sleep state -123
Dec 28 10:32:43 pureos kernel: brcmfmac: brcmf_sdio_bus_stop: Failed to force clock for F2: err -123
Dec 28 10:32:43 pureos avahi-daemon[731]: Interface wlan0.IPv4 no longer relevant for mDNS.
Dec 28 10:32:43 pureos kernel: mmc1: card 0001 removed
And shortly after this we have the kernel oops:
Dec 28 10:32:48 pureos kernel: brcmfmac: brcmf_sdio_bus_rxctl: resumed on timeout
Dec 28 10:32:48 pureos kernel: ------------[ cut here ]------------
Dec 28 10:32:48 pureos kernel: WARNING: CPU: 3 PID: 4875 at drivers/mmc/core/sdio_io.c:29 sdio_claim_host+0x38/0x40
Dec 28 10:32:48 pureos kernel: Modules linked in: rfcomm algif_hash algif_skcipher af_alg bnep hci_uart btqca bluetooth xt_CHECKSUM iptable_nat xt_MASQUERADE nf_nat bridge stp udp_diag nf_co>
Dec 28 10:32:48 pureos kernel: industrialio_triggered_buffer caam kfifo_buf mc snd_soc_core error snd_pcm_dmaengine snd_pcm rfkill_hks imx2_wdt snd_timer watchdog snd soundcore rfkill libco>
Dec 28 10:32:48 pureos kernel: CPU: 3 PID: 4875 Comm: kworker/3:1 Tainted: G C 6.1.0-1-librem5 #1
Dec 28 10:32:48 pureos kernel: Hardware name: Purism Librem 5r4 (DT)
Dec 28 10:32:48 pureos kernel: Workqueue: events request_firmware_work_func
Dec 28 10:32:48 pureos kernel: pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
Dec 28 10:32:48 pureos kernel: pc : sdio_claim_host+0x38/0x40
Dec 28 10:32:48 pureos kernel: lr : brcmf_sdio_readshared+0x44/0x220 [brcmfmac]
Dec 28 10:32:48 pureos kernel: sp : ffff80000de2b7d0
Dec 28 10:32:48 pureos kernel: x29: ffff80000de2b7d0 x28: ffff00000139d80c x27: 00000000000065d1
Dec 28 10:32:48 pureos kernel: x26: ffff00001125ca80 x25: ffff000001398ab4 x24: 0000000000000000
Dec 28 10:32:48 pureos kernel: x23: ffff800001458c20 x22: ffff80000de2b888 x21: 0000000000000000
Dec 28 10:32:48 pureos kernel: x20: ffff000001398800 x19: ffff000001398800 x18: 0000000000000000
Dec 28 10:32:48 pureos kernel: x17: ffff8000b67c9000 x16: ffff8000098a4000 x15: 0000000000000030
Dec 28 10:32:48 pureos kernel: x14: 0000000000000000 x13: 74756f656d697420 x12: 6e6f2064656d7573
Dec 28 10:32:48 pureos kernel: x11: 00000000ffffdfff x10: 00000000ffffdfff x9 : ffff80000144afb4
Dec 28 10:32:48 pureos kernel: x8 : 000000000002ffe8 x7 : c0000000ffffdfff x6 : 0000000000017ff4
Dec 28 10:32:48 pureos kernel: x5 : ffff0000bf9809d0 x4 : ffff0000bf9809d0 x3 : 0000000000000000
Dec 28 10:32:48 pureos kernel: x2 : ffff00003983ab80 x1 : ffff80000de2b888 x0 : 0000000000000000
Dec 28 10:32:48 pureos kernel: Call trace:
Dec 28 10:32:48 pureos kernel: sdio_claim_host+0x38/0x40
Dec 28 10:32:48 pureos kernel: brcmf_sdio_checkdied.isra.0+0x34/0x110 [brcmfmac]
Dec 28 10:32:48 pureos kernel: brcmf_sdio_bus_rxctl+0x1f0/0x220 [brcmfmac]
Dec 28 10:32:48 pureos kernel: brcmf_proto_bcdc_cmplt+0x7c/0xa0 [brcmfmac]
Dec 28 10:32:48 pureos kernel: brcmf_proto_bcdc_set_dcmd+0x9c/0x124 [brcmfmac]
Dec 28 10:32:48 pureos kernel: brcmf_fil_cmd_data+0x84/0x180 [brcmfmac]
Dec 28 10:32:48 pureos kernel: brcmf_fil_iovar_data_set+0xbc/0x1a0 [brcmfmac]
Dec 28 10:32:48 pureos kernel: brcmf_c_preinit_dcmds+0x528/0x810 [brcmfmac]
Dec 28 10:32:48 pureos kernel: brcmf_attach+0x148/0x4d0 [brcmfmac]
Dec 28 10:32:48 pureos kernel: brcmf_sdio_firmware_callback+0x808/0x900 [brcmfmac]
Dec 28 10:32:48 pureos kernel: brcmf_fw_request_done+0x15c/0x194 [brcmfmac]
Dec 28 10:32:48 pureos kernel: request_firmware_work_func+0x54/0xa0
Dec 28 10:32:48 pureos kernel: process_one_work+0x204/0x480
Dec 28 10:32:48 pureos kernel: worker_thread+0x154/0x450
Dec 28 10:32:48 pureos kernel: kthread+0x114/0x120
Dec 28 10:32:48 pureos kernel: ret_from_fork+0x10/0x20
Dec 28 10:32:48 pureos kernel: ---[ end trace 0000000000000000 ]---
Dec 28 10:32:48 pureos kernel: Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000
Dec 28 10:32:48 pureos kernel: Mem abort info:
Dec 28 10:32:48 pureos kernel: ESR = 0x0000000096000004
Dec 28 10:32:48 pureos kernel: EC = 0x25: DABT (current EL), IL = 32 bits
Dec 28 10:32:48 pureos kernel: SET = 0, FnV = 0
Dec 28 10:32:49 pureos kernel: EA = 0, S1PTW = 0
Dec 28 10:32:49 pureos kernel: FSC = 0x04: level 0 translation fault
Dec 28 10:32:49 pureos kernel: Data abort info:
Dec 28 10:32:49 pureos kernel: ISV = 0, ISS = 0x00000004
Dec 28 10:32:49 pureos kernel: CM = 0, WnR = 0
Dec 28 10:32:49 pureos kernel: user pgtable: 4k pages, 48-bit VAs, pgdp=0000000046900000
Dec 28 10:32:49 pureos kernel: [0000000000000000] pgd=0000000000000000, p4d=0000000000000000
Dec 28 10:32:49 pureos kernel: Internal error: Oops: 0000000096000004 [#1] PREEMPT SMP
Dec 28 10:32:49 pureos kernel: Modules linked in: rfcomm algif_hash algif_skcipher af_alg bnep hci_uart btqca bluetooth xt_CHECKSUM iptable_nat xt_MASQUERADE nf_nat bridge stp udp_diag nf_co>
Dec 28 10:32:49 pureos kernel: industrialio_triggered_buffer caam kfifo_buf mc snd_soc_core error snd_pcm_dmaengine snd_pcm rfkill_hks imx2_wdt snd_timer watchdog snd soundcore rfkill libco>
Dec 28 10:32:49 pureos kernel: CPU: 3 PID: 4875 Comm: kworker/3:1 Tainted: G WC 6.1.0-1-librem5 #1
Dec 28 10:32:49 pureos kernel: Hardware name: Purism Librem 5r4 (DT)
Dec 28 10:32:49 pureos kernel: Workqueue: events request_firmware_work_func
Dec 28 10:32:49 pureos kernel: pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
Dec 28 10:32:49 pureos kernel: pc : brcmf_sdio_bus_sleep+0xf8/0x32c [brcmfmac]
Dec 28 10:32:49 pureos kernel: lr : brcmf_sdio_bus_sleep+0xe8/0x32c [brcmfmac]
Dec 28 10:32:49 pureos kernel: sp : ffff80000de2b780
I should note that after this happened a few times in a row the other day, I have not (yet) had a repeat of this lock-up today, but will update this ticket with more logs should it happen again. I was using a custom linux-image-6.1.0-1-librem5_6.1.0pureos1+gitlabci1_arm64.deb package that was modified to allow me to use higher bandwidth rates for sparklan bluetooth, in case that is a useful/relevant data point.