git: iwm(4): Replenish the RX ring before modifying the mbuf
Aaron LI
aly at crater.dragonflybsd.org
Thu Oct 22 07:23:35 PDT 2026
commit 7d625932add5b8245f034a89ed2df5fca9a77910
Author: David Bidner <david at crap.solutions>
Date: Thu Oct 15 11:59:09 2026 +0200
iwm(4): Replenish the RX ring before modifying the mbuf
iwm_rx_mpdu_mq() changed m_data and m_len of the RX ring mbuf before
calling iwm_rx_addbuf(). When the replenishment failed, for example
with ENOMEM from exhausted busdma bounce pages, it returned with the
modified mbuf still in the ring. The next frame received into that
slot was then parsed 56 bytes too far in: payload was taken for
notifications, bogus command completions drained the command queue,
and the "ring->queued is empty?" assertion in iwm_cmd_done() fired.
Replenish first, as iwm_rx_rx_mpdu() already does.
See commits 96eaecf93d9f in DragonFly and 0acc104f88cc in OpenBSD.
Bug: https://bugs.dragonflybsd.org/issues/3447
Summary of changes:
sys/dev/netif/iwm/if_iwm.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/7d625932add5b8245f034a89ed2df5fca9a77910
--
DragonFly BSD source repository
More information about the Commits
mailing list