Staging: VME: Fix Universe II int ack logic.
authorVincent Bossier <vincent.bossier@gmail.com>
Thu, 2 Jun 2011 10:30:02 +0000 (12:30 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 28 Jun 2011 21:06:12 +0000 (14:06 -0700)
The driver must acknowledge the interrupts that have been actually serviced, not
the ones active. The current code could acknowledge an interrupt that has not
been serviced at all.

Signed-off-by: Vincent Bossier <vincent.bossier@gmail.com>
Acked-by: Martyn Welch <martyn.welch@ge.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/vme/bridges/vme_ca91cx42.c

index 1c94ae6b867fa3f8b5e5bb0bab37de7eec0cdd83..6aad34b8b3fe4c7d2e63f08d6cab6ebeb06ea090 100644 (file)
@@ -190,7 +190,7 @@ static irqreturn_t ca91cx42_irqhandler(int irq, void *ptr)
                serviced |= ca91cx42_VIRQ_irqhandler(ca91cx42_bridge, stat);
 
        /* Clear serviced interrupts */
-       iowrite32(stat, bridge->base + LINT_STAT);
+       iowrite32(serviced, bridge->base + LINT_STAT);
 
        return IRQ_HANDLED;
 }