I got a new little workhorse from work with an Intel Corporation Wireless-AC 9260 (rev 29) using upstream iwlwifi.

This is not about how the Linux Kernel v5,5 Nuked WiFi on iwlwifi but more about the extreme annoyance that recent 802.11n capable Intel Wifi cards experience when connected to 5Ghz networks.

The experienced issue is a sudden stall of network connectivity while the card still claims to be connected to the AP but upon inspection of the kernel logs shows a nice trace (at the bottom of the post) indicating that there is a firmware issue and the physical device (phy0 in this case) needs a reset.

I tried all firmwares available and only found one to lower the incident rate, but still not fully remove it.

Firmware Longest Period Result
iwlwifi-9260-th-b0-jf-b0-33.ucode Immediately crashed Fail
iwlwifi-9260-th-b0-jf-b0-34.ucode 1-2h Fail
iwlwifi-9260-th-b0-jf-b0-34.ucode (from intel.com) 1-2h Fail
iwlwifi-9260-th-b0-jf-b0-38.ucode >24h Acceptable
iwlwifi-9260-th-b0-jf-b0-41.ucode Immediately crashed Fail
iwlwifi-9260-th-b0-jf-b0-43.ucode Immediately crashed Fail
iwlwifi-9260-th-b0-jf-b0-46.ucode 4-6h Fail

All tests were performed by having the AC Connector plugged, pegging the CPU and GPU with some load heavy tasks and running iperf3 against a target on the local network.

The reports as to why the issue occurs varies greatly, some say it only happens on high CPU load, others claim GPU, others claim AC connected, … I couldn’t verify any singular cause, however, it is generally always triggered if there is initial burst load on the NIC followed by a sustained load.

As you can see from above matrix the firmware iwlwifi-9260-th-b0-jf-b0-38.ucode from linux-firmware “survives” the longest but still fails occasionally.

The only iwlwifi option you can set to avoid the issue is to fully disable 802.11n through 11n_disable= but do know that this will reduce the performance of the NIC to 54 Mbps tops, likely never exceeding 25 Mbps from my tests.

The card does deliver >600 Mbps in normal operation (when it doesn’t crash that is), so going from 600 Mbps to effectively 20 Mbps is simply not acceptable.

What baffles me is the fact that this issue is far from being new, it’s multiple years old and Intel does not seem to care at all about it despite being well aware of it.


iwlwifi 0000:3b:00.0: Microcode SW error detected. Restarting 0x0.
iwlwifi 0000:3b:00.0: Start IWL Error Log Dump:
iwlwifi 0000:3b:00.0: Status: 0x00000040, count: 6
iwlwifi 0000:3b:00.0: Loaded firmware version: 33.610294.0 9260-th-b0-jf-b0-33.ucode
iwlwifi 0000:3b:00.0: 0x00001007 | ADVANCED_SYSASSERT
iwlwifi 0000:3b:00.0: 0x00802AF4 | trm_hw_status0
iwlwifi 0000:3b:00.0: 0x00000000 | trm_hw_status1
iwlwifi 0000:3b:00.0: 0x0045650A | branchlink2
iwlwifi 0000:3b:00.0: 0x0045FD76 | interruptlink1
iwlwifi 0000:3b:00.0: 0x00000000 | interruptlink2
iwlwifi 0000:3b:00.0: 0x00030800 | data1
iwlwifi 0000:3b:00.0: 0x00000C0B | data2
iwlwifi 0000:3b:00.0: 0x00000000 | data3
iwlwifi 0000:3b:00.0: 0xC6C11330 | beacon time
iwlwifi 0000:3b:00.0: 0xFD772CC8 | tsf low
iwlwifi 0000:3b:00.0: 0x00000233 | tsf hi
iwlwifi 0000:3b:00.0: 0x00000000 | time gp1
iwlwifi 0000:3b:00.0: 0x053D1CD0 | time gp2
iwlwifi 0000:3b:00.0: 0x00000001 | uCode revision type
iwlwifi 0000:3b:00.0: 0x00000021 | uCode version major
iwlwifi 0000:3b:00.0: 0x00094FF6 | uCode version minor
iwlwifi 0000:3b:00.0: 0x00000321 | hw version
iwlwifi 0000:3b:00.0: 0x00489004 | board version
iwlwifi 0000:3b:00.0: 0x0A07001C | hcmd
iwlwifi 0000:3b:00.0: 0x8002200A | isr0
iwlwifi 0000:3b:00.0: 0x00000000 | isr1
iwlwifi 0000:3b:00.0: 0x08001802 | isr2
iwlwifi 0000:3b:00.0: 0x0041E8C9 | isr3
iwlwifi 0000:3b:00.0: 0x00000000 | isr4
iwlwifi 0000:3b:00.0: 0x00AF019C | last cmd Id
iwlwifi 0000:3b:00.0: 0x00000000 | wait_event
iwlwifi 0000:3b:00.0: 0x00000080 | l2p_control
iwlwifi 0000:3b:00.0: 0x00002020 | l2p_duration
iwlwifi 0000:3b:00.0: 0x0000003F | l2p_mhvalid
iwlwifi 0000:3b:00.0: 0x000000CE | l2p_addr_match
iwlwifi 0000:3b:00.0: 0x0000000D | lmpm_pmg_sel
iwlwifi 0000:3b:00.0: 0x25101533 | timestamp
iwlwifi 0000:3b:00.0: 0x000048C8 | flow_handler
iwlwifi 0000:3b:00.0: Start IWL Error Log Dump:
iwlwifi 0000:3b:00.0: Status: 0x00000040, count: 7
iwlwifi 0000:3b:00.0: 0x00000070 | NMI_INTERRUPT_LMAC_FATAL
iwlwifi 0000:3b:00.0: 0x00000000 | umac branchlink1
iwlwifi 0000:3b:00.0: 0xC0087BF4 | umac branchlink2
iwlwifi 0000:3b:00.0: 0xC0084384 | umac interruptlink1
iwlwifi 0000:3b:00.0: 0xC0084384 | umac interruptlink2
iwlwifi 0000:3b:00.0: 0x00000800 | umac data1
iwlwifi 0000:3b:00.0: 0xC0084384 | umac data2
iwlwifi 0000:3b:00.0: 0xDEADBEEF | umac data3
iwlwifi 0000:3b:00.0: 0x00000021 | umac major
iwlwifi 0000:3b:00.0: 0x00094FF6 | umac minor
iwlwifi 0000:3b:00.0: 0xC0886280 | frame pointer
iwlwifi 0000:3b:00.0: 0xC0886280 | stack pointer
iwlwifi 0000:3b:00.0: 0x00AF019C | last host cmd
iwlwifi 0000:3b:00.0: 0x00000000 | isr status reg
iwlwifi 0000:3b:00.0: Fseq Registers:
iwlwifi 0000:3b:00.0: 0xC0996506 | FSEQ_ERROR_CODE
iwlwifi 0000:3b:00.0: 0x00000000 | FSEQ_TOP_INIT_VERSION
iwlwifi 0000:3b:00.0: 0xD448F01A | FSEQ_CNVIO_INIT_VERSION
iwlwifi 0000:3b:00.0: 0x0000A371 | FSEQ_OTP_VERSION
iwlwifi 0000:3b:00.0: 0x04474DE1 | FSEQ_TOP_CONTENT_VERSION
iwlwifi 0000:3b:00.0: 0xF5800756 | FSEQ_ALIVE_TOKEN
iwlwifi 0000:3b:00.0: 0x2A525AB1 | FSEQ_CNVI_ID
iwlwifi 0000:3b:00.0: 0x643E8541 | FSEQ_CNVR_ID
iwlwifi 0000:3b:00.0: 0x01000200 | CNVI_AUX_MISC_CHIP
iwlwifi 0000:3b:00.0: 0x01300202 | CNVR_AUX_MISC_CHIP
iwlwifi 0000:3b:00.0: 0x0000485B | CNVR_SCU_SD_REGS_SD_REG_DIG_DCDC_VTRIM
iwlwifi 0000:3b:00.0: 0x0BADCAFE | CNVR_SCU_SD_REGS_SD_REG_ACTIVE_VDIG_MIRROR
iwlwifi 0000:3b:00.0: Collecting data: trigger 2 fired.
ieee80211 phy0: Hardware restart was requested