[PATCH] arm: Enable interrupts before calling schedule()
Peter Zijlstra
peterz at infradead.org
Mon May 23 05:44:02 PDT 2016
On Fri, May 20, 2016 at 05:42:17PM +0200, Thomas Gleixner wrote:
> do_work_pending() calls schedule() with interrupts disabled, which is just
> wrong. Fix it.
Thomas; lockdep cannot currently catch this. It doesn't do IRQ state
validation other than ensuring the state matches with the hardware.
So things like:
local_irq_disable();
local_irq_disable();
local_irq_save();
local_irq_enable();
(and 'obviously' suspect sequence of IRQ events)
Are _fine_ by it. The only time it will yell is if flipping IRQ state
ends up marking an actual held lock with ENABLED_HARDIRQ while it
already had USED_IN_HARDIRQ.
More information about the linux-arm-kernel
mailing list