irqwork: Move irq safe work to irq context
On architectures where arch_irq_work_has_interrupt() returns false, we end up running the irq safe work from the softirq context. That results in a potential deadlock in the scheduler irq work which expects that function to be called with interrupts disabled. Split the irq_work_tick() function into a hard and soft variant. Call the hard variant from the tick interrupt and add the soft variant to the timer softirq. Reported-and-tested-by:Yanjiang Jin <yanjiang.jin@windriver.com> Signed-off-by:
Thomas Gleixner <tglx@linutronix.de> Cc: stable-rt@vger.kernel.org
Loading
Please sign in to comment