On Mon, Sep 21, 2015 at 11:04:31AM +0200, Thomas Gleixner wrote: > Force threading of interrupts does not deal with interrupts which are > requested with a primary and a threaded handler. The current policy is > to leave them alone and let the primary handler run in interrupt > context, but we set the ONESHOT flag for those interrupts as well. > > Kohji Okuno debugged a problem with the SDHCI driver where the > interrupt thread waits for a hardware interrupt to trigger, which cant > work well because the hardware interrupt is masked due to the ONESHOT > flag being set. He proposed to set the ONESHOT flag only if the > interrupt does not provide a thread handler. > > Though that does not work either because these interrupts can be > shared. So the other interrupt would rightfully get the ONESHOT flag > set and therefor the same situation would happen again. > > To deal with this proper, we need to force thread the primary handler > of such interrupts as well. That means that the primary interrupt > handler is treated as any other primary interrupt handler which is not > marked IRQF_NO_THREAD. The threaded handler becomes a separate thread > so the SDHCI flow logic can be handled gracefully. > > The same issue was reported against 4.1-rt. > > Reported-by: Kohji Okuno <okuno.kohji@xxxxxxxxxxxxxxxx> > Reported-By: Michal Šmucr <msmucr@xxxxxxxxx> > Reported-by: Nathan Sullivan <nathan.sullivan@xxxxxx> > Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > Cc: Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> > --- > > This requires to revert commit: d04ea10ba1ea 'mmc: sdhci: don't provide > hard irq handler' > Tested on an Intel Bay Trail system with ath6kl SDIO wireless, works fine. Tested-by: Nathan Sullivan <nathan.sullivan@xxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html