aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/mmc/core/sdio_irq.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/mmc/core/sdio_irq.c b/drivers/mmc/core/sdio_irq.c
index e7865059e12..3bd3021f5e8 100644
--- a/drivers/mmc/core/sdio_irq.c
+++ b/drivers/mmc/core/sdio_irq.c
@@ -45,16 +45,22 @@ static int process_sdio_pending_irqs(struct mmc_card *card)
printk(KERN_WARNING "%s: pending IRQ for "
"non-existant function\n",
mmc_card_id(card));
+ ret = -EINVAL;
} else if (func->irq_handler) {
func->irq_handler(func);
count++;
- } else
+ } else {
printk(KERN_WARNING "%s: pending IRQ with no handler\n",
sdio_func_id(func));
+ ret = -EINVAL;
+ }
}
}
- return count;
+ if (count)
+ return count;
+
+ return ret;
}
static int sdio_irq_thread(void *_host)