On Mon, Nov 08, 2021 at 01:57:53PM +0100, Paul de Weerd wrote: > Hi all, > > After upgrading my laptop to a newer snapshot this weekend, I started > getting panics. I was running OpenBSD 7.0-current (GENERIC.MP) #60: > Sun Oct 31 13:27:05 MDT 2021 before the upgrade. Hand-typed from a > picture I took: > > panic: kernel diagnostic assertion "ieee80211_has_seq(hw)" failed: file > "/usr/src/sys/net80211/ieee80211_input.c", line 145 > Stopped at db_enter+0x10: popq %rbp > TID PID UID PRFLAGS PFLAGS CPU COMMAND > 503471 51765 107 0x100010 0x4000000 3 vmd > 333711 51765 107 0x100010 0x4000000 1 vmd > 148566 72734 0 0x14000 0x200 2 drmwq > db_enter() at db_enter+0x10 > panic(ffffffff81e52e8a) at panic+0xbf > __assert(ffffffff81ec2db8,ffffffff81ef7c3b,91,ffffffff81ecda4c) at > __assert+0x25 > ieee80211_get_hdrlen(fffffd805ce2967a) at ieee80211_get_hdrlen+0x8f > iwx_ccmp_decap(...) at iwx_ccmp_decap+0x40 > iwx_rx_frame(...) at iwx_rx_frame+0xe1 > iwx_release_frames(...) at iwx_release_frames+0x17f > iwx_rx_reorder(...) at iwx_rx_reorder+0x595 > iwx_rx_mpdu_mq(...) at iwx_rx_mpdu_mq+0x2e0 > iwx_rx_pkt(...) at iwx_rx_pkt+0x650 > iwx_notif_intr(...) at iwx_notif_intr+0x9c > iwx_intr_msix(...) at iwx_intr_msix+0xb4 > intr_handler(...) at intr_handler+0x6e > Xintr_ioapic_edge31_untramp() at Xintr_ioapic_edge31_untramp+0x18f > end trace frame: 0xffff80001d98f4e0, count: 0 >
Unfortunately, I cannot make any sense of this. There were no new changes in iwx(4) since Oct 15. If the Oct 31 snap was working fine then your problem is not related to driver-side changes. Also in the regular code flow there is no way that non-QoS data frames end up on the list processed in iwx_release_frames(). And QoS data frames always have a sequence number so this assertion simply should not trigger. I guess there could be some kind of memory corruption, where either an mbuf or the mbuf list maintained by the driver is garbage? Please try to bisect kernels from source and see whether you can find a commit which started this. I don't have a better answer for now.
