diff options
author | Wu Fengguang <fengguang.wu@intel.com> | 2008-11-26 14:35:22 +0800 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2008-12-19 04:38:33 -0500 |
commit | abe1dfab60e1839d115930286cb421f5a5b193f3 (patch) | |
tree | e47757bf2fcd10086b64c623220138478a73e9db | |
parent | e76f42761197dd6e9405e2eeb35932acfede115a (diff) |
ACPI: don't cond_resched() when irqs_disabled()
The ACPI interpreter usually runs with irqs enabled.
However, during suspend/resume it runs with
irqs disabled to evaluate _GTS/_BFS, as well as
by irqrouter_resume() which evaluates _CRS, _PRS, _SRS.
http://bugzilla.kernel.org/show_bug.cgi?id=12252
Signed-off-by: Wu Fengguang <wfg@linux.intel.com>
Signed-off-by: Len Brown <len.brown@intel.com>
-rw-r--r-- | include/acpi/platform/aclinux.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/include/acpi/platform/aclinux.h b/include/acpi/platform/aclinux.h index 029c8c06c15..0515e754449 100644 --- a/include/acpi/platform/aclinux.h +++ b/include/acpi/platform/aclinux.h @@ -141,6 +141,10 @@ static inline void *acpi_os_acquire_object(acpi_cache_t * cache) /* * We need to show where it is safe to preempt execution of ACPICA */ -#define ACPI_PREEMPTION_POINT() cond_resched() +#define ACPI_PREEMPTION_POINT() \ + do { \ + if (!irqs_disabled()) \ + cond_resched(); \ + } while (0) #endif /* __ACLINUX_H__ */ |