From 7c2b564e54a4d89c01b381dc503d00ba5ce228b1 Mon Sep 17 00:00:00 2001 From: Evgeny Kuznetsov Date: Tue, 7 Dec 2010 16:25:40 -0800 Subject: [PATCH] --- yaml --- r: 226461 b: refs/heads/master c: b1cc4c55c69efed3ebbb2a13e4c77a2a1a4a6bc9 h: refs/heads/master i: 226459: 86f0229fca00f43840e30dece791382c61d8d29f v: v3 --- [refs] | 2 +- trunk/arch/arm/plat-omap/gpio.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 813fec1529e6..7333ad129e63 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: be40f7a3d7b53c1a44e11b376b4a395d6b91f58d +refs/heads/master: b1cc4c55c69efed3ebbb2a13e4c77a2a1a4a6bc9 diff --git a/trunk/arch/arm/plat-omap/gpio.c b/trunk/arch/arm/plat-omap/gpio.c index c05c653d1674..e0e2fa725269 100644 --- a/trunk/arch/arm/plat-omap/gpio.c +++ b/trunk/arch/arm/plat-omap/gpio.c @@ -1318,6 +1318,10 @@ static void gpio_irq_handler(unsigned int irq, struct irq_desc *desc) if (bank->method == METHOD_GPIO_44XX) isr_reg = bank->base + OMAP4_GPIO_IRQSTATUS0; #endif + + if (WARN_ON(!isr_reg)) + goto exit; + while(1) { u32 isr_saved, level_mask = 0; u32 enabled; @@ -1377,6 +1381,7 @@ static void gpio_irq_handler(unsigned int irq, struct irq_desc *desc) configured, we must unmask the bank interrupt only after handler(s) are executed in order to avoid spurious bank interrupt */ +exit: if (!unmasked) desc->chip->unmask(irq);