From: Alexey Starikovskiy Date: Tue, 13 Nov 2007 00:09:01 +0000 (-0500) Subject: ACPI: suspend: Wrong order of GPE restore. X-Git-Tag: v2.6.23.6~1 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=05981e812ea625e4f13942368071d2dbb1a78edf;p=karo-tx-linux.git ACPI: suspend: Wrong order of GPE restore. commit 1dbc1fda5d8ca907f320b806005d4a447977d26a in mainline. ACPI: suspend: Wrong order of GPE restore. acpi_leave_sleep_state() should have correct list of wake and runtime GPEs, which is available only after disable_wakeup_device() is called. [cebbert@redhat.com: backport to 2.6.23] Signed-off-by: Alexey Starikovskiy Acked-by: Rafael J. Wysocki Signed-off-by: Len Brown Cc: Chuck Ebbert Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/acpi/sleep/main.c b/drivers/acpi/sleep/main.c index 6e0d2d46f804..37b651eda27b 100644 --- a/drivers/acpi/sleep/main.c +++ b/drivers/acpi/sleep/main.c @@ -170,8 +170,8 @@ static int acpi_pm_finish(suspend_state_t pm_state) { u32 acpi_state = acpi_target_sleep_state; - acpi_leave_sleep_state(acpi_state); acpi_disable_wakeup_device(acpi_state); + acpi_leave_sleep_state(acpi_state); /* reset firmware waking vector */ acpi_set_firmware_waking_vector((acpi_physical_address) 0); @@ -256,8 +256,8 @@ static int acpi_hibernation_enter(void) static void acpi_hibernation_finish(void) { - acpi_leave_sleep_state(ACPI_STATE_S4); acpi_disable_wakeup_device(ACPI_STATE_S4); + acpi_leave_sleep_state(ACPI_STATE_S4); /* reset firmware waking vector */ acpi_set_firmware_waking_vector((acpi_physical_address) 0);