Skip to content

Commit ff28e5c

Browse files
vittyvkgregkh
authored andcommitted
ACPI / PCI: Bail early in acpi_pci_add_bus() if there is no ACPI handle
commit a0040c0 upstream. Hyper-V instances support PCI pass-through which is implemented through PV pci-hyperv driver. When a device is passed through, a new root PCI bus is created in the guest. The bus sits on top of VMBus and has no associated information in ACPI. acpi_pci_add_bus() in this case proceeds all the way to acpi_evaluate_dsm(), which reports ACPI: \: failed to evaluate _DSM (0x1001) While acpi_pci_slot_enumerate() and acpiphp_enumerate_slots() are protected against ACPI_HANDLE() being NULL and do nothing, acpi_evaluate_dsm() is not and gives us the error. It seems the correct fix is to not do anything in acpi_pci_add_bus() in such cases. Signed-off-by: Vitaly Kuznetsov <[email protected]> Signed-off-by: Bjorn Helgaas <[email protected]> Cc: Sinan Kaya <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent dd69aba commit ff28e5c

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

drivers/pci/pci-acpi.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -624,7 +624,7 @@ void acpi_pci_add_bus(struct pci_bus *bus)
624624
union acpi_object *obj;
625625
struct pci_host_bridge *bridge;
626626

627-
if (acpi_pci_disabled || !bus->bridge)
627+
if (acpi_pci_disabled || !bus->bridge || !ACPI_HANDLE(bus->bridge))
628628
return;
629629

630630
acpi_pci_slot_enumerate(bus);

0 commit comments

Comments
 (0)