git: iwm(4): allow 36-bit DMA for the RX/TX data buffers
Aaron LI
aly at crater.dragonflybsd.org
Thu Oct 22 07:23:35 PDT 2026
commit 540ec2927cd9cbdd2bc295dfa0b589a86a02ede2
Author: David Bidner <david at crap.solutions>
Date: Thu Oct 15 12:28:19 2026 +0200
iwm(4): allow 36-bit DMA for the RX/TX data buffers
The RX and TX data buffer DMA tags were limited to
BUS_SPACE_MAXADDR_32BIT. With more than 4 GB of RAM every frame is
then bounced through busdma, and under load the bounce zone can be
exhausted, dropping RX replenishments and TX frames.
iwlwifi uses 36-bit DMA for non-gen2 devices (7000/8000/9000; only
gen2 uses 64-bit). The hardware can represent such addresses: the
9000-series MQ RX free descriptor stores a full 64-bit address and
the legacy RX descriptor stores addr >> 8, while the TX TFD carries
the address bits [35:32] in the hi_n_len field. The descriptor,
status, firmware, keep-warm, ICT and scheduler allocations keep their
32-bit limit because the registers that point at them are narrower.
See tfd.addr_size in iwlwifi gen1_2/trans.c in Linux.
Bug: https://bugs.dragonflybsd.org/issues/3448
Summary of changes:
sys/dev/netif/iwm/if_iwm.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/540ec2927cd9cbdd2bc295dfa0b589a86a02ede2
--
DragonFly BSD source repository
More information about the Commits
mailing list