OSDN Git Service

au1xmmc: abort requests early if no card is present.
authorManuel Lauss <mano@roarinelk.homelinux.net>
Mon, 9 Jun 2008 06:39:11 +0000 (08:39 +0200)
committerPierre Ossman <drzeus@drzeus.cx>
Tue, 15 Jul 2008 12:14:43 +0000 (14:14 +0200)
Don't process an MMC request if no card is present.

Signed-off-by: Manuel Lauss <mano@roarinelk.homelinux.net>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
drivers/mmc/host/au1xmmc.c

index fcbaf40..718eb87 100644 (file)
@@ -697,6 +697,13 @@ static void au1xmmc_request(struct mmc_host* mmc, struct mmc_request* mrq)
        host->mrq = mrq;
        host->status = HOST_S_CMD;
 
+       /* fail request immediately if no card is present */
+       if (0 == au1xmmc_card_inserted(host)) {
+               mrq->cmd->error = -ENOMEDIUM;
+               au1xmmc_finish_request(host);
+               return;
+       }
+
        if (mrq->data) {
                FLUSH_FIFO(host);
                ret = au1xmmc_prepare_data(host, mrq->data);