On 16/01/17 16:23, Gabriel Krisman Bertazi wrote: > One of our kernelCI boxes hanged at boot because a faulty eSDHC device > was triggering spurious CARD_INT interrupts for SD cards, causing CMD52 > reads, which are not allowed for SD devices. This adds a sanity check > to the interruption path, preventing that illegal command from getting > sent if the CARD_INT interruption should be disabled. > > This quirk allows that particular machine to resume boot despite the > faulty hardware, instead of getting hung dealing with thousands of > mishandled interrupts. > > Suggested-by: Adrian Hunter <adrian.hunter@xxxxxxxxx> > Signed-off-by: Gabriel Krisman Bertazi <krisman@xxxxxxxxxxxxxxx> > CC: Ulf Hansson <ulf.hansson@xxxxxxxxxx> > CC: linux-mmc@xxxxxxxxxxxxxxx Acked-by: Adrian Hunter <adrian.hunter@xxxxxxxxx> > --- > drivers/mmc/host/sdhci.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c > index 51cd4f0e973f..a2efa25c7f3b 100644 > --- a/drivers/mmc/host/sdhci.c > +++ b/drivers/mmc/host/sdhci.c > @@ -2733,7 +2733,8 @@ static irqreturn_t sdhci_irq(int irq, void *dev_id) > if (intmask & SDHCI_INT_RETUNE) > mmc_retune_needed(host->mmc); > > - if (intmask & SDHCI_INT_CARD_INT) { > + if ((intmask & SDHCI_INT_CARD_INT) && > + (host->ier & SDHCI_INT_CARD_INT)) { > sdhci_enable_sdio_irq_nolock(host, false); > host->thread_isr |= SDHCI_INT_CARD_INT; > result = IRQ_WAKE_THREAD; > -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html