diff options
-rw-r--r-- | drivers/pci/hotplug/acpiphp_glue.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/pci/hotplug/acpiphp_glue.c b/drivers/pci/hotplug/acpiphp_glue.c index 903af4d4a383..f2f460cba5f7 100644 --- a/drivers/pci/hotplug/acpiphp_glue.c +++ b/drivers/pci/hotplug/acpiphp_glue.c | |||
@@ -277,9 +277,6 @@ static acpi_status acpiphp_add_context(acpi_handle handle, u32 lvl, void *data, | |||
277 | struct pci_dev *pdev = bridge->pci_dev; | 277 | struct pci_dev *pdev = bridge->pci_dev; |
278 | u32 val; | 278 | u32 val; |
279 | 279 | ||
280 | if (pdev && device_is_managed_by_native_pciehp(pdev)) | ||
281 | return AE_OK; | ||
282 | |||
283 | status = acpi_evaluate_integer(handle, "_ADR", NULL, &adr); | 280 | status = acpi_evaluate_integer(handle, "_ADR", NULL, &adr); |
284 | if (ACPI_FAILURE(status)) { | 281 | if (ACPI_FAILURE(status)) { |
285 | if (status != AE_NOT_FOUND) | 282 | if (status != AE_NOT_FOUND) |
@@ -338,8 +335,14 @@ static acpi_status acpiphp_add_context(acpi_handle handle, u32 lvl, void *data, | |||
338 | 335 | ||
339 | list_add_tail(&slot->node, &bridge->slots); | 336 | list_add_tail(&slot->node, &bridge->slots); |
340 | 337 | ||
341 | /* Register slots for ejectable functions only. */ | 338 | /* |
342 | if (acpi_pci_check_ejectable(pbus, handle) || is_dock_device(handle)) { | 339 | * Expose slots to user space for functions that have _EJ0 or _RMV or |
340 | * are located in dock stations. Do not expose them for devices handled | ||
341 | * by the native PCIe hotplug (PCIeHP), becuase that code is supposed to | ||
342 | * expose slots to user space in those cases. | ||
343 | */ | ||
344 | if ((acpi_pci_check_ejectable(pbus, handle) || is_dock_device(handle)) | ||
345 | && !(pdev && device_is_managed_by_native_pciehp(pdev))) { | ||
343 | unsigned long long sun; | 346 | unsigned long long sun; |
344 | int retval; | 347 | int retval; |
345 | 348 | ||