Silent wifi wedge on Apple BCM4360 / broadcom-wl (link stays "connected", DHCP dies) — watchdog mitigation included #6401
Unanswered
jethrojones
asked this question in
Support
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
System details
Omarchy 4.0.0 (Quattro dev branch,
omarchy-dev 4.0.0.r1387.gd3fdaca-1), Linux 7.1.5-arch1-1, Mac Mini (Apple-brandedBCM4360 802.11acwifi, PCI subsystemApple Inc. Device 013b), driver:wl(broadcom-wl, out-of-tree).What's wrong?
Wifi silently stops passing traffic after some hours of uptime, without ever showing as disconnected. Link stays associated (the interface keeps receiving LAN broadcast/multicast frames from other devices — confirmed via ufw kernel logs), but DHCP lease renewal stops succeeding and nothing above the driver notices anything is wrong. No amount of
nmcli/networkctlretry logic recovers it — only a full reboot brings the interface back.This looks like the same root cause as #5398 (
broadcom-wlon BCM4360, closed as a CPU/IRQ-storm symptom on a MacBook Air 2015) — same driver bug, different manifestation. Filing separately since the symptom and evidence trail are different enough to be useful to future searchers, but I believe they share a root cause.Diagnostic evidence
Kernel warns about the driver at every boot:
And there's an active memory-safety bug logged during BSS/scan-result processing:
This is the same function (
wl_inform_single_bss, reached viawl_notify_scan_status) flagged in #5398, just a different line offset (driver/kernel version drift). I also have anERROR @wl_notify_scan_statusfrom the driver on an earlier, unrelated boot days before this incident — so this code path appears to fault intermittently over time, not just once.Timeline of one occurrence (from
journalctl,NetworkManagerunit):wlp2s0had been succeeding like clockwork, roughly every 24 minutes, for the prior ~4 hours of uptime.21:45:11— a DHCPv6 renewal attempt returnsstate changed no lease.wlp2s0still receiving mDNS/multicast frames from other LAN devices — i.e. the radio stayed associated to the AP the whole time. The failure is above the link layer, consistent with the driver's internal state getting corrupted rather than a clean disconnect.What I'm doing about it (mitigation, not a fix)
Since the actual bug lives in the out-of-tree
wldriver (unmaintained, as the kernel itself says), there's no real fix available from userspace — killing/reloading thewlmodule doesn't reliably recover it, and evenrfkillcycling isn't consistent. So instead of trying to fix the driver, I built two systemd units that detect the wedge and force recovery within minutes instead of leaving the box dark until someone notices and power-cycles it.1. A 5-minute watchdog that pings out and forces reconnection on failure:
/etc/systemd/system/network-watchdog.timer/etc/systemd/system/network-watchdog.service/usr/local/bin/network-watchdog.shThe key part for anyone on
wl/BCM4360: since the driver wedges above the link layer (radio stays associated, sonmcli/iwctlwill report "connected" the whole time), a plain "is the device connected?" check won't catch it — you need an actual ping/DNS check, then a disconnect+reconnect cycle through NetworkManager to force the driver to renegotiate.2. A boot-time check for a related-but-separate flakiness, where NetworkManager's own
autoconnectsometimes just doesn't fire after boot:/etc/systemd/system/nm-wifi-watchdog.service/usr/local/bin/nm-wifi-watchdog.shVerified this is actually doing something, not just cargo-culted: I disabled
network-watchdog.timerfor ~39 hours as a deliberate test to see if the box was stable without it. It wasn't — the wedge described above happened during that exact window and sat unreachable for nearly 11 hours with zero recovery attempts, until I rebooted it manually. Re-enabled the timer immediately after confirming that.Neither unit fixes the underlying driver bug — they just cap the outage at 5 minutes instead of "until someone notices." Posting mainly so:
broadcom-wlbox that goes silently unreachable rather than cleanly disconnecting.broadcom-wlon BCM4360 hardware (at least Mac Mini + MacBook Air 2015, per Severe CPU degradation on MacBook Air 2015 caused by broadcom-wl (BCM4360) IRQ storm on kernel 6.19 #5398) has at least two independently-observed failure modes (CPU/IRQ storm, and this silent network wedge) traced to the samewl_inform_single_bssmemory-safety warning — might be worth a documented known-issue / hardware-compatibility note for anyone installing Omarchy on older Apple hardware with this chip, given the driver itself is unmaintained upstream.All reactions