aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/ec.c
diff options
context:
space:
mode:
authorAlexey Starikovskiy <alexey.y.starikovskiy@intel.com>2006-05-05 03:23:00 -0400
committerLen Brown <len.brown@intel.com>2006-06-14 02:43:23 -0400
commitb8d35192c55fb055792ff0641408eaaec7c88988 (patch)
tree87272903bda56a4ddedcc513d35a74f072ab1f5d /drivers/acpi/ec.c
parent958dd242b691f64ab4632b4903dbb1e16fee8269 (diff)
ACPI: execute Notify() handlers on new thread
http://bugzilla.kernel.org/show_bug.cgi?id=5534 Thanks to Peter Wainwright for isolating the issue. Thanks to Andi Kleen and Bob Moore for feedback. Thanks to Richard Mace and others for testing. Updates by Konstantin Karasyov. Signed-off-by: Konstantin Karasyov <konstantin.a.karasyov@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'drivers/acpi/ec.c')
-rw-r--r--drivers/acpi/ec.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
index 79b09d76c180..1e3222762bf3 100644
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -763,8 +763,7 @@ static u32 acpi_ec_gpe_poll_handler(void *data)
763 763
764 acpi_disable_gpe(NULL, ec->common.gpe_bit, ACPI_ISR); 764 acpi_disable_gpe(NULL, ec->common.gpe_bit, ACPI_ISR);
765 765
766 status = acpi_os_queue_for_execution(OSD_PRIORITY_GPE, 766 status = acpi_os_execute(OSL_EC_POLL_HANDLER, acpi_ec_gpe_query, ec);
767 acpi_ec_gpe_query, ec);
768 767
769 if (status == AE_OK) 768 if (status == AE_OK)
770 return ACPI_INTERRUPT_HANDLED; 769 return ACPI_INTERRUPT_HANDLED;
@@ -799,7 +798,7 @@ static u32 acpi_ec_gpe_intr_handler(void *data)
799 798
800 if (value & ACPI_EC_FLAG_SCI) { 799 if (value & ACPI_EC_FLAG_SCI) {
801 atomic_add(1, &ec->intr.pending_gpe); 800 atomic_add(1, &ec->intr.pending_gpe);
802 status = acpi_os_queue_for_execution(OSD_PRIORITY_GPE, 801 status = acpi_os_execute(OSL_EC_BURST_HANDLER,
803 acpi_ec_gpe_query, ec); 802 acpi_ec_gpe_query, ec);
804 return status == AE_OK ? 803 return status == AE_OK ?
805 ACPI_INTERRUPT_HANDLED : ACPI_INTERRUPT_NOT_HANDLED; 804 ACPI_INTERRUPT_HANDLED : ACPI_INTERRUPT_NOT_HANDLED;