Page MenuHomeFreeBSD

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

Authored by kbowling on Fri, Aug 21, 3:35 AM.

Details

Reviewers
jhb
markj
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

Lint
Lint Skipped
Unit
Tests Skipped