• Frederic Weisbecker's avatar
    alpha: Fix preemption handling in idle loop · 6a6c0272
    Frederic Weisbecker authored
    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: default avatarFrederic Weisbecker <fweisbec@gmail.com>
    Tested-by: default avatarMichael 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: default avatarJosh Triplett <josh@joshtriplett.org>
    6a6c0272
smp.c 17.4 KB