From: Philipp Zabel Date: Thu, 3 Jul 2008 09:08:27 +0000 (+0200) Subject: mfd: fix the asic3 irq demux code X-Git-Tag: v2.6.27-rc1~965^2~3 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=de0d23c12c42317c273919b597f6822af2102e55;p=linux-2.6 mfd: fix the asic3 irq demux code Wrong irq numbers were given to desc->handle_irq, which on some devices caused endless loops (asic3_irq_demux calling itself, basically). Signed-off-by: Philipp Zabel Signed-off-by: Samuel Ortiz Signed-off-by: Andrew Morton --- diff --git a/drivers/mfd/asic3.c b/drivers/mfd/asic3.c index 50c773c4d6..f2fb233b0f 100644 --- a/drivers/mfd/asic3.c +++ b/drivers/mfd/asic3.c @@ -137,7 +137,7 @@ static void asic3_irq_demux(unsigned int irq, struct irq_desc *desc) for (i = ASIC3_NUM_GPIOS; i < ASIC3_NR_IRQS; i++) { /* They start at bit 4 and go up */ if (status & (1 << (i - ASIC3_NUM_GPIOS + 4))) { - desc = irq_desc + + i; + desc = irq_desc + asic->irq_base + i; desc->handle_irq(asic->irq_base + i, desc); }