diff options
author | Alexey Starikovskiy <astarikovskiy@suse.de> | 2009-12-30 15:53:03 +0300 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2010-01-15 22:52:48 -0500 |
commit | f5347867c5aea94c625246eaff8f7820b0a4cd8a (patch) | |
tree | ce722a9f7ed2a7b001c19d506d4a3969552f12b7 /drivers/acpi | |
parent | a62e8f1978f49e52f87a711ff6711b323d4b12ff (diff) | |
download | op-kernel-dev-f5347867c5aea94c625246eaff8f7820b0a4cd8a.zip op-kernel-dev-f5347867c5aea94c625246eaff8f7820b0a4cd8a.tar.gz |
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>
Diffstat (limited to 'drivers/acpi')
-rw-r--r-- | drivers/acpi/ec.c | 3 | ||||
-rw-r--r-- | drivers/acpi/sbshc.c | 2 |
2 files changed, 3 insertions, 2 deletions
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c index 9cc3885..0473309 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) return -ENOMEM; memcpy(copy, handler, sizeof(*copy)); pr_debug(PREFIX "push query execution (0x%2x) on queue\n", value); - return acpi_os_execute(OSL_GPE_HANDLER, + return acpi_os_execute((copy->func) ? + OSL_NOTIFY_HANDLER : OSL_GPE_HANDLER, acpi_ec_run, copy); } } diff --git a/drivers/acpi/sbshc.c b/drivers/acpi/sbshc.c index d933980..fd09229 100644 --- a/drivers/acpi/sbshc.c +++ b/drivers/acpi/sbshc.c @@ -242,7 +242,7 @@ static int smbus_alarm(void *context) case ACPI_SBS_CHARGER: case ACPI_SBS_MANAGER: case ACPI_SBS_BATTERY: - acpi_os_execute(OSL_GPE_HANDLER, + acpi_os_execute(OSL_NOTIFY_HANDLER, acpi_smbus_callback, hc); default:; } |