Messages in this thread | | | Date | Thu, 22 Mar 2012 12:06:07 +0100 | From | Alexander Gordeev <> | Subject | Re: [PATCH 1/3] genirq: Get rid of unneeded force parameter in irq_finalize_oneshot() |
| |
On Thu, Mar 22, 2012 at 11:32:26AM +0100, Thomas Gleixner wrote: > Wrong. > > CPU 0 CPU 1 > > do_exit() > check(PF_EXITING) > set_bit(IRQTF_RUNTHREAD) > ... > set(PF_EXITING) > exit_irq_thread()
Thomas,
Did not you pick this code with 7140ea1 commit?
@@ -845,6 +842,13 @@ void exit_irq_thread(void)
desc = irq_to_desc(action->irq);
+ /* + * If IRQTF_RUNTHREAD is set, we need to decrement + * desc->threads_active and wake possible waiters. + */ + if (test_and_clear_bit(IRQTF_RUNTHREAD, &action->thread_flags)) + wake_threads_waitq(desc); + /* Prevent a stale desc->threads_oneshot */ irq_finalize_oneshot(desc, action, true); }
> > if (test_bit(IRQTF_RUNTHREAD)) > goto out; > > -> FAIL > > Thanks, > > tglx
-- Regards, Alexander Gordeev agordeev@redhat.com
| |