aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/system.c
diff options
context:
space:
mode:
authorAlexey Starikovskiy <astarikovskiy@suse.de>2008-10-25 13:48:46 -0400
committerLen Brown <len.brown@intel.com>2008-11-11 18:35:42 -0500
commit0b7084ac67fb84f0cf2f8bc02d7e0dea8521dd2d (patch)
tree0a619ac7a700543e6ba69aa5a568e5678ec0603d /drivers/acpi/system.c
parenta2f93aeadf97e870ff385030633a73e21146815d (diff)
ACPICA: Use spinlock for acpi_{en|dis}able_gpe
Disabling gpe might interfere with gpe detection/handling, thus producing "interrupt not handled" errors. Ironically, disabling of GPE from interrupt context is already under spinlock, so only userspace needs to start using it. Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/system.c')
-rw-r--r--drivers/acpi/system.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/acpi/system.c b/drivers/acpi/system.c
index 1d74171b7940..11995b612ad7 100644
--- a/drivers/acpi/system.c
+++ b/drivers/acpi/system.c
@@ -394,10 +394,10 @@ static ssize_t counter_set(struct kobject *kobj,
394 if (index < num_gpes) { 394 if (index < num_gpes) {
395 if (!strcmp(buf, "disable\n") && 395 if (!strcmp(buf, "disable\n") &&
396 (status & ACPI_EVENT_FLAG_ENABLED)) 396 (status & ACPI_EVENT_FLAG_ENABLED))
397 result = acpi_disable_gpe(handle, index, ACPI_NOT_ISR); 397 result = acpi_disable_gpe(handle, index);
398 else if (!strcmp(buf, "enable\n") && 398 else if (!strcmp(buf, "enable\n") &&
399 !(status & ACPI_EVENT_FLAG_ENABLED)) 399 !(status & ACPI_EVENT_FLAG_ENABLED))
400 result = acpi_enable_gpe(handle, index, ACPI_NOT_ISR); 400 result = acpi_enable_gpe(handle, index);
401 else if (!strcmp(buf, "clear\n") && 401 else if (!strcmp(buf, "clear\n") &&
402 (status & ACPI_EVENT_FLAG_SET)) 402 (status & ACPI_EVENT_FLAG_SET))
403 result = acpi_clear_gpe(handle, index, ACPI_NOT_ISR); 403 result = acpi_clear_gpe(handle, index, ACPI_NOT_ISR);