Page MenuHomeFreeBSD

aq: implement the RSS driver methods
AbandonedPublic

Authored by nick_spun.io on Aug 18 2026, 5:21 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sun, Sep 20, 12:15 AM
Unknown Object (File)
Sat, Sep 19, 12:18 AM
Unknown Object (File)
Fri, Sep 18, 12:25 AM
Unknown Object (File)
Thu, Sep 17, 10:17 PM
Unknown Object (File)
Thu, Sep 10, 9:03 AM
Unknown Object (File)
Tue, Sep 8, 7:35 PM
Unknown Object (File)
Mon, Sep 7, 9:41 PM
Unknown Object (File)
Mon, Sep 7, 5:30 AM
Subscribers

Details

Reviewers
None
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 75670
Build 72553: arc lint + arc unit