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
Unknown Object (File)
Wed, Oct 7, 2:06 AM
Unknown Object (File)
Tue, Oct 6, 6:46 PM
Unknown Object (File)
Tue, Oct 6, 6:35 PM
Unknown Object (File)
Mon, Oct 5, 10:47 PM
Unknown Object (File)
Mon, Oct 5, 8:56 AM
Unknown Object (File)
Sun, Oct 4, 1:07 AM
Unknown Object (File)
Sat, Oct 3, 8:57 PM
Unknown Object (File)
Sat, Oct 3, 7:08 PM
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