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