]> git.baikalelectronics.ru Git - kernel.git/commit
Revert "cpumask: use work_on_cpu in acpi-cpufreq.c for drv_read and drv_write"
authorIngo Molnar <mingo@elte.hu>
Mon, 12 Jan 2009 09:49:53 +0000 (10:49 +0100)
committerIngo Molnar <mingo@elte.hu>
Mon, 12 Jan 2009 18:24:23 +0000 (19:24 +0100)
commit912b4a77f0e44a252fe58699b0ea61935b370683
treef3e129473515950d93a39b92c6ea2ebcbe3e5174
parent34b9323339d9c73753d686ca9dfcb5fe8f66859b
Revert "cpumask: use work_on_cpu in acpi-cpufreq.c for drv_read and drv_write"

This reverts commit 284d1ec4ffe6017387de8833454c68d5d24d0183.

Dieter Ries reported bootup soft-hangs and bisected it back to
this commit, and reverting this commit gave him a working system.

The commit introduces work_on_cpu() use into the cpufreq code,
but that is subtly problematic from a lock hierarchy POV: the
hotplug-cpu lock is an highlevel lock that is taken before
lowlevel locks, and in this codepath we are called with the
policy lock taken.

Dieter did not have lockdep enabled so we dont have a nice stack
trace proof for this, but using work_on_cpu() in such a lowlevel
place certainly looks wrong, so we revert the patch.

work_on_cpu() needs to be reworked to be more generally usable.

Reported-by: Dieter Ries <clip2@gmx.de>
Tested-by: Dieter Ries <clip2@gmx.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c