Page MenuHomeFreeBSD

aq: implement the RSS driver methods
DraftPublic

Authored by nick_spun.io on Aug 18 2026, 11:11 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sat, Sep 19, 7:23 PM
Unknown Object (File)
Sat, Sep 19, 7:23 PM
Unknown Object (File)
Fri, Sep 11, 7:11 PM
Unknown Object (File)
Thu, Sep 10, 10:39 PM
Unknown Object (File)
Tue, Sep 8, 12:19 PM
Unknown Object (File)
Tue, Sep 8, 10:31 AM
Unknown Object (File)
Sun, Sep 6, 10:40 AM
Unknown Object (File)
Sat, Sep 5, 8:07 AM
Subscribers
This is a draft revision that has not yet been submitted for review.

Details

Reviewers
adrian
gallatin
Summary

aq holds the key and indirection table in its softc and programs both
from aq_if_init(), so a write survives every reinit path.

iflib publishes the interface before IFDI_ATTACH_POST, where aq seeds
those copies, so the methods report ENXIO until the seeding has run
rather than serving a zeroed shadow as hardware state.

A write programs the hardware before updating the softc.
aq_hw_rss_hash_set() and aq_hw_rss_set() can time out part way through,
and committing first would leave the shadow describing a key the
hardware never took. The hardware is written only when the interface is
running and aq_hw_init() did not fail; aq does not call
iflib_init_failed(), so IFF_DRV_RUNNING alone does not mean the device
can take a register write.

Signed-off-by: Nick Price <nprice@FreeBSD.org>

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped
Build Status
Buildable 75694
Build 72577: arc lint + arc unit