Skip to content

Commit 8c63c3b

Browse files
lyakhgregkh
authored andcommitted
mmc: sh-mmcif: avoid oops on spurious interrupts
commit 8464dd5 upstream. On some systems, e.g., kzm9g, MMCIF interfaces can produce spurious interrupts without any active request. To prevent the Oops, that results in such cases, don't dereference the mmc request pointer until we make sure, that we are indeed processing such a request. Reported-by: Tetsuyuki Kobayashi <koba@kmckk.co.jp> Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de> Signed-off-by: Chris Ball <cjb@laptop.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 25356be commit 8c63c3b

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

drivers/mmc/host/sh_mmcif.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1229,6 +1229,10 @@ static irqreturn_t sh_mmcif_intr(int irq, void *dev_id)
12291229
host->sd_error = true;
12301230
dev_dbg(&host->pd->dev, "int err state = %08x\n", state);
12311231
}
1232+
if (host->state == STATE_IDLE) {
1233+
dev_info(&host->pd->dev, "Spurious IRQ status 0x%x", state);
1234+
return IRQ_HANDLED;
1235+
}
12321236
if (state & ~(INT_CMD12RBE | INT_CMD12CRE)) {
12331237
if (!host->dma_active)
12341238
return IRQ_WAKE_THREAD;

0 commit comments

Comments
 (0)