]> git.baikalelectronics.ru Git - kernel.git/commit
alpha: Fix preemption handling in idle loop
authorFrederic Weisbecker <fweisbec@gmail.com>
Thu, 23 Aug 2012 12:11:25 +0000 (14:11 +0200)
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Sun, 23 Sep 2012 14:44:42 +0000 (07:44 -0700)
commit1bf4db2e4dd2eac5c812bafdbcad1a345394b298
tree3b4babe1cbfa3659d42d9ecf326f6169defe4730
parent829dcf11809ea6ebb6315ea786db6f85e31b67d6
alpha: Fix preemption handling in idle loop

cpu_idle() is called on the boot CPU by the init code with
preemption disabled. But the cpu_idle() function in alpha
doesn't handle this when it calls schedule() directly.

Fix it by converting it into schedule_preempt_disabled().

Also disable preemption before calling cpu_idle() from
secondary CPU entry code to stay consistent with this
state.

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Tested-by: Michael Cree <mcree@orcon.net.nz>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Matt Turner <mattst88@gmail.com>
Cc: alpha <linux-alpha@vger.kernel.org>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
arch/alpha/kernel/process.c
arch/alpha/kernel/smp.c