Page MenuHomeFreeBSD

D59061.diff
No OneTemporary

D59061.diff

diff --git a/sys/dev/acpica/acpi_pci.c b/sys/dev/acpica/acpi_pci.c
--- a/sys/dev/acpica/acpi_pci.c
+++ b/sys/dev/acpica/acpi_pci.c
@@ -338,6 +338,18 @@
void
acpi_pci_child_added(device_t dev, device_t child)
{
+ struct acpi_pci_devinfo *dinfo;
+
+ dinfo = device_get_ivars(child);
+
+ /*
+ * 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, causing the ACPI handle for that device to be
+ * attached to the VF.
+ */
+ if ((dinfo->ap_dinfo.cfg.flags & PCICFG_VF) != 0)
+ return;
/*
* PCI devices are added via the bus scan in the normal PCI

File Metadata

Mime Type
text/plain
Expires
Mon, Sep 7, 2:32 PM (9 h, 55 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
37436747
Default Alt Text
D59061.diff (677 B)

Event Timeline