From d4b5881b387e1cce48cb3366eea045e01fe73efc Mon Sep 17 00:00:00 2001 From: Shaohua Li Date: Wed, 20 Jun 2007 09:17:58 +0800 Subject: [PATCH] --- yaml --- r: 82386 b: refs/heads/master c: a3627f67b1d5ddd8f65eedc2a76da90fbe062530 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/acpi/sleep/main.c | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 99461960b662..00b367173f0e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f4cb57007662a4ec3c2de3c027900223e0299bdd +refs/heads/master: a3627f67b1d5ddd8f65eedc2a76da90fbe062530 diff --git a/trunk/drivers/acpi/sleep/main.c b/trunk/drivers/acpi/sleep/main.c index cbfa058d89e3..96d23b3cfc4e 100644 --- a/trunk/drivers/acpi/sleep/main.c +++ b/trunk/drivers/acpi/sleep/main.c @@ -146,6 +146,13 @@ static int acpi_pm_enter(suspend_state_t pm_state) if (ACPI_SUCCESS(status) && (acpi_state == ACPI_STATE_S3)) acpi_clear_event(ACPI_EVENT_POWER_BUTTON); + /* + * Disable and clear GPE status before interrupt is enabled. Some GPEs + * (like wakeup GPE) haven't handler, this can avoid such GPE misfire. + * acpi_leave_sleep_state will reenable specific GPEs later + */ + acpi_hw_disable_all_gpes(); + local_irq_restore(flags); printk(KERN_DEBUG "Back to C!\n");