HomeFreeBSD

if_genet: don't load DMA mapping when tx_queue is full

Description

if_genet: don't load DMA mapping when tx_queue is full

gen_encap() always calls bus_dmamap_load_mbuf_sg() into 'map' (which is
the current tx_queue). If the tx_queue is full, it will load with a
'map' that already has a currently active mapping. This violates the
busdma(9) KPI.

Checking for a full queue and returning ENOBUFS will allow
gen_start_locked() to set the IFF_DRV_OACTIVE faster without having to
needlessly check if the mbuf will fit (it won't).

PR: 256482
Reviewed by: mhorne
MFC after: 1 week
Submitted by: ghuckriede@blackberry.com

(cherry picked from commit a35f66510917f5ac21c11e9642174cda7718fbc6)

Details

Provenance
mhorneAuthored on Jun 27 2024, 5:26 PM
Parents
rG08b083932c6f: wpa_cli.8: describe better + tag spdx + linter nit
Branches
Unknown
Tags
Unknown