Page MenuHomeFreeBSD

acpi_pci: Do not match SR-IOV VFs to ACPI devices
ClosedPublic

Authored by kbowling on Aug 21 2026, 3:35 AM.
Tags
None
Referenced Files
F174540536: D59061.id185177.diff
Sun, Oct 4, 1:07 AM
F174516925: D59061.id184624.diff
Sat, Oct 3, 8:57 PM
F174506799: D59061.diff
Sat, Oct 3, 7:08 PM
Unknown Object (File)
Wed, Sep 30, 7:00 AM
Unknown Object (File)
Tue, Sep 29, 12:39 PM
Unknown Object (File)
Tue, Sep 29, 7:55 AM
Unknown Object (File)
Thu, Sep 24, 6:38 AM
Unknown Object (File)
Thu, Sep 24, 4:45 AM
Subscribers

Details

Summary
SR-IOV VFs are instantiated dynamically from their PF rather than
enumerated from ACPI.  A VF's runtime slot and function can match an
unrelated _ADR below the bridge.  acpi_pci_save_handle() stores that
handle in the VF's devinfo before acpi_pci_update_device() runs.

If the handle is already bound to another device_t whose parent is not
acpi0, acpi_pci_update_device() panics under INVARIANTS.  Without
INVARIANTS, the VF retains the unrelated handle, so subsequent ACPI
lookups, including NUMA and power-management operations, can act on the
wrong namespace node.

Skip ACPI namespace matching for VFs.

MFC after:      2 weeks

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable