ARM: 7377/1: vic: re-read status register before dispatching each IRQ handler
authorWill Deacon <will.deacon@arm.com>
Thu, 5 Apr 2012 18:42:10 +0000 (19:42 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Tue, 10 Apr 2012 08:27:42 +0000 (09:27 +0100)
commit34af657916332e89564566bc8d35e3e06cc0c236
treebcde46e4d6cc24c84372342c507d9964e90dea8b
parentdff2aa7af8c96a11f75d858859f0e0c78b193d12
ARM: 7377/1: vic: re-read status register before dispatching each IRQ handler

handle_IRQ may briefly cause interrupts to be re-enabled during soft IRQ
processing on the exit path, leading to nested handling of VIC interrupts.

Since the current code does not re-read the VIC_IRQ_STATUS register, this
can lead to multiple invocations of the same interrupt handler and
spurious interrupts to be reported.

This patch changes the VIC interrupt dispatching code to re-read the
status register each time, avoiding duplicate invocations of the same
handler.

Acked-and-Tested-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Reviewed-by: Jamie Iles <jamie@jamieiles.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/common/vic.c