aboutsummaryrefslogtreecommitdiffstats
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 e7865059e126..3bd3021f5e80 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)
45 printk(KERN_WARNING "%s: pending IRQ for " 45 printk(KERN_WARNING "%s: pending IRQ for "
46 "non-existant function\n", 46 "non-existant function\n",
47 mmc_card_id(card)); 47 mmc_card_id(card));
48 ret = -EINVAL;
48 } else if (func->irq_handler) { 49 } else if (func->irq_handler) {
49 func->irq_handler(func); 50 func->irq_handler(func);
50 count++; 51 count++;
51 } else 52 } else {
52 printk(KERN_WARNING "%s: pending IRQ with no handler\n", 53 printk(KERN_WARNING "%s: pending IRQ with no handler\n",
53 sdio_func_id(func)); 54 sdio_func_id(func));
55 ret = -EINVAL;
56 }
54 } 57 }
55 } 58 }
56 59
57 return count; 60 if (count)
61 return count;
62
63 return ret;
58} 64}
59 65
60static int sdio_irq_thread(void *_host) 66static int sdio_irq_thread(void *_host)