Page MenuHomeFreeBSD

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

Authored by kbowling on Fri, Aug 21, 3:35 AM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Sep 11, 11:45 AM
Unknown Object (File)
Thu, Sep 10, 7:01 PM
Unknown Object (File)
Wed, Sep 9, 4:42 PM
Unknown Object (File)
Tue, Sep 8, 1:24 PM
Unknown Object (File)
Tue, Sep 8, 12:30 PM
Unknown Object (File)
Mon, Sep 7, 10:46 PM
Unknown Object (File)
Mon, Sep 7, 5:27 PM
Unknown Object (File)
Mon, Sep 7, 5:12 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