aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexey Starikovskiy <astarikovskiy@suse.de>2009-12-30 07:53:03 -0500
committerLen Brown <len.brown@intel.com>2010-01-15 22:52:48 -0500
commitf5347867c5aea94c625246eaff8f7820b0a4cd8a (patch)
treece722a9f7ed2a7b001c19d506d4a3969552f12b7
parenta62e8f1978f49e52f87a711ff6711b323d4b12ff (diff)
ACPI: SBS: Move SBS HC callback to faster Notify queue
SBS transactions should happen in Notify work queue, to not create a dead lock with GPE execution accessing SBS devices. Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Len Brown <len.brown@intel.com>
-rw-r--r--drivers/acpi/ec.c3
-rw-r--r--drivers/acpi/sbshc.c2
2 files changed, 3 insertions, 2 deletions
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
index 9cc38857c33b..047330929821 100644
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -535,7 +535,8 @@ static int acpi_ec_sync_query(struct acpi_ec *ec)
535 return -ENOMEM; 535 return -ENOMEM;
536 memcpy(copy, handler, sizeof(*copy)); 536 memcpy(copy, handler, sizeof(*copy));
537 pr_debug(PREFIX "push query execution (0x%2x) on queue\n", value); 537 pr_debug(PREFIX "push query execution (0x%2x) on queue\n", value);
538 return acpi_os_execute(OSL_GPE_HANDLER, 538 return acpi_os_execute((copy->func) ?
539 OSL_NOTIFY_HANDLER : OSL_GPE_HANDLER,
539 acpi_ec_run, copy); 540 acpi_ec_run, copy);
540 } 541 }
541 } 542 }
diff --git a/drivers/acpi/sbshc.c b/drivers/acpi/sbshc.c
index d9339806df45..fd09229282ea 100644
--- a/drivers/acpi/sbshc.c
+++ b/drivers/acpi/sbshc.c
@@ -242,7 +242,7 @@ static int smbus_alarm(void *context)
242 case ACPI_SBS_CHARGER: 242 case ACPI_SBS_CHARGER:
243 case ACPI_SBS_MANAGER: 243 case ACPI_SBS_MANAGER:
244 case ACPI_SBS_BATTERY: 244 case ACPI_SBS_BATTERY:
245 acpi_os_execute(OSL_GPE_HANDLER, 245 acpi_os_execute(OSL_NOTIFY_HANDLER,
246 acpi_smbus_callback, hc); 246 acpi_smbus_callback, hc);
247 default:; 247 default:;
248 } 248 }