Skip to content

Commit

Permalink
mmc: sh-mmcif: avoid oops on spurious interrupts
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Guennadi Liakhovetski <[email protected]>
Cc: stable <[email protected]>
Signed-off-by: Chris Ball <[email protected]>
  • Loading branch information
lyakh authored and cjb committed Oct 3, 2012
1 parent 7a7eb32 commit 8464dd5
Showing 1 changed file with 4 additions and 0 deletions.
4 changes: 4 additions & 0 deletions drivers/mmc/host/sh_mmcif.c
Original file line number Diff line number Diff line change
Expand Up @@ -1231,6 +1231,10 @@ static irqreturn_t sh_mmcif_intr(int irq, void *dev_id)
host->sd_error = true;
dev_dbg(&host->pd->dev, "int err state = %08x\n", state);
}
if (host->state == STATE_IDLE) {
dev_info(&host->pd->dev, "Spurious IRQ status 0x%x", state);
return IRQ_HANDLED;
}
if (state & ~(INT_CMD12RBE | INT_CMD12CRE)) {
if (!host->dma_active)
return IRQ_WAKE_THREAD;
Expand Down

0 comments on commit 8464dd5

Please sign in to comment.