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)
committerVarun Wadekar <vwadekar@nvidia.com>
Wed, 18 Apr 2012 15:06:20 +0000 (20:06 +0530)
commiteed0320baf900126990797c39b92cfaa293715a5
tree4dfe8c9718d5ee88f9afc9f361dbeb65994fc35d
parentdb8666e58294fecbe5ac28e9ca9460366d679adf
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