Re: [PATCH] genirq: Fix bad IRQ_ONSHOT in forced IRQ setting

From: Marc Zyngier
Date: Fri Sep 18 2015 - 06:03:22 EST


On Fri, 18 Sep 2015 18:22:07 +0900
Kohji Okuno <okuno.kohji@xxxxxxxxxxxxxxxx> wrote:

> From: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Date: Fri, 18 Sep 2015 11:04:23 +0200
> > That's weird. The flow is:
> >
> > interrupt()
> > mask()
> > ret = primary_handler()
> > if (ret == WAKE_THREAD)
> > wake_thread()
> > else
> > unmask()
> >
> > thread_handler()
> > ....
> > unmask()
> >
> > So if an interrupt is triggered on the device while the interrupt is
> > masked it should be raised again immediately when the unmask happens
> > because its level type.
> >
> > I'm wondering why that doesn't work.
>
> Yes. I think so. And, I have just found that sdhci_thread_irq() don't
> finish in this case. I'm analyzing about this now. But, after I apply
> my patch, sdhci_thread_irq() can finish. I will share the result with
> you.

What do you mean exactly by "don't finish"? Does it hang somewhere? Or
keeps processing data but never drains?

Thanks,

M.
--
Jazz is not dead. It just smells funny.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/