The following patch from Shaohua Li fixes a race with preempt enabled when
a module containing a pm_idle callback is unloaded. Cached values in local
variables need to be protected as RCU critical sections so that the
synchronize_kernel() call in the unload path waits for all processors.
There original bugzilla entry can be found at
Shaohua, i had to make a small change (variable declaration after code in
code block) so that it compiles with geriatric compilers such as the ones
Andrew is attached to ;)
http://bugzilla.kernel.org/show_bug.cgi?id=1716
Signed-off-by: Li Shaohua <shaohua.li@intel.com> Signed-off-by: Zwane Mwaikambo <zwane@linuxpower.ca> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>