ARM: Disable preemption along with interrupts during shutdown

Russell King - ARM Linux linux at
Thu May 8 06:49:10 PDT 2014

On Thu, May 08, 2014 at 06:53:31PM +0530, arunks.linux at wrote:
> From: Arun KS <arunks.linux at>
> 'irqs disabled' is funtamentally unsafe way of disabling preemption.
> Any spin_unlock() decreasing the preemption count to 0 might trigger
> a reschedule. A simple printk() might trigger a reschedule.
> To be on safe side disable preemption as well using preempt_disable()


asmlinkage void __sched notrace preempt_schedule(void)
         * If there is a non-zero preempt_count or interrupts are disabled,
         * we do not want to preempt the current task. Just return..
        if (likely(!preemptible()))

FTTC broadband for 0.8mile line: now at 9.7Mbps down 460kbps up... slowly
improving, and getting towards what was expected from it.

More information about the linux-arm-kernel mailing list