Messages in this thread | | | Date | Sun, 15 Nov 2015 09:26:14 +0100 (CET) | From | Thomas Gleixner <> | Subject | Re: [RT PATCH] sched: rt: fix two possible deadlocks in push_irq_work_func |
| |
On Sun, 15 Nov 2015, Thomas Gleixner wrote: > On Sat, 14 Nov 2015, yjin wrote: > > > > Use raw_spin_{un,}lock_irq{save,restore} in push_irq_work_func() to > > > > prevent following potentially deadlock scenario: > > > Ug. No, the real fix is that the irq work is to be run from hard > > > interrupt context. > > But if so, we shouldn't call irq_work_tick() in run_timer_softirq(), right? > > The work is marked IRQ_WORK_HARD_IRQ so it should be run from hard irq > context. We only run the work, which is not marked IRQ_WORK_HARD_IRQ > from the softirq on RT.
Which does not happen on MIPS as it uses the generic arch_irq_work_has_interrupt() implementation which returns 'false'.
Thanks,
tglx
| |