]> git.karo-electronics.de Git - karo-tx-linux.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>
Wed, 5 Sep 2012 01:12:05 +0000 (18:12 -0700)
commit5a3231c44f9ead52bec5296a0109d4d667506f99
tree82148b501d25d32bde87038cd89062164727befb
parente41b10b28a1818ea0d150982a5450dab64025374
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>
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>
Cc: Michael Cree <mcree@orcon.net.nz>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>
arch/alpha/kernel/process.c
arch/alpha/kernel/smp.c