From: Rafael J. Wysocki <rjw@xxxxxxx> It generally is unsafe to call acpi_pci_osc_control_set() without checking what _OSC bits the BIOS is willing to grant control of, because control of some _OSC bits may be granted even if acpi_pci_osc_control_set() returns AE_SUPPORT. Therefore make acpi_get_hp_hw_control_from_firmware() use acpi_pci_osc_control_query() to check if the BIOS will grant OSC_SHPC_NATIVE_HP_CONTROL before calling acpi_pci_osc_control_set(). Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx> --- drivers/pci/hotplug/acpi_pcihp.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) Index: linux-2.6/drivers/pci/hotplug/acpi_pcihp.c =================================================================== --- linux-2.6.orig/drivers/pci/hotplug/acpi_pcihp.c +++ linux-2.6/drivers/pci/hotplug/acpi_pcihp.c @@ -358,11 +358,13 @@ int acpi_get_hp_hw_control_from_firmware acpi_get_name(handle, ACPI_FULL_PATHNAME, &string); dbg("Trying to get hotplug control for %s\n", (char *)string.pointer); + status = acpi_pci_osc_control_query(handle, &flags); + if (ACPI_FAILURE(status) + || !(flags & OSC_SHPC_NATIVE_HP_CONTROL)) + goto no_control; status = acpi_pci_osc_control_set(handle, flags); if (ACPI_SUCCESS(status)) goto got_one; - if (status == AE_SUPPORT) - goto no_control; kfree(string.pointer); string = (struct acpi_buffer){ ACPI_ALLOCATE_BUFFER, NULL }; } -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html