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)
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>

No differences found