ACPI/CPUIDLE: prevent setting pm_idle to NULL
authorThomas Gleixner <tglx@linutronix.de>
Sun, 27 Jul 2008 21:47:12 +0000 (23:47 +0200)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 28 Jul 2008 15:31:58 +0000 (08:31 -0700)
commitb032bf70df2e43149ce2b4e9a865b076c6140753
treeba022a0bc85598a29e21b7aa3f101c8043c24024
parent9ffc1699e36abd5baee188c8e36b1bb27d0d4278
ACPI/CPUIDLE: prevent setting pm_idle to NULL

pm_idle_save resp. pm_idle_old can be NULL when the restore code in
acpi_processor_cst_has_changed() resp. cpuidle_uninstall_idle_handler()
is called. This can set pm_idle unconditinally to NULL, which causes the
kernel to panic when calling pm_idle in the x86 idle code. This was
covered by an extra check for !pm_idle in the x86 idle code, which was
removed during the x86 idle code refactoring.

Instead of restoring the pm_idle check in the x86 code prevent the
acpi/cpuidle code to set pm_idle to NULL.

Reported by: Dhaval Giani http://lkml.org/lkml/2008/7/2/309
Based on a debug patch from Ingo Molnar

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/acpi/processor_idle.c
drivers/cpuidle/cpuidle.c