diff options
author | Phil Elwell <phil@raspberrypi.org> | 2016-10-27 16:21:19 +0100 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2017-01-25 13:39:02 +0100 |
commit | a8c775fc3196db046a95b55f063b24174371a334 (patch) | |
tree | 4262ccc591a2ecf3a4f397635f6efdfc06aab67b | |
parent | bd0cb2e670883ea683efe931365d56a20e04ce72 (diff) | |
download | linux-a8c775fc3196db046a95b55f063b24174371a334.tar.gz |
irq-bcm2836: Prevent spurious interrupts, and trap them early
The old arch-specific IRQ macros included a dsb to ensure the
write to clear the mailbox interrupt completed before returning
from the interrupt. The BCM2836 irqchip driver needs the same
precaution to avoid spurious interrupts.
Signed-off-by: Phil Elwell <phil@raspberrypi.org>
-rw-r--r-- | drivers/irqchip/irq-bcm2836.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/irqchip/irq-bcm2836.c b/drivers/irqchip/irq-bcm2836.c index e7463e3c0814..a8db33b50ad9 100644 --- a/drivers/irqchip/irq-bcm2836.c +++ b/drivers/irqchip/irq-bcm2836.c @@ -175,6 +175,7 @@ __exception_irq_entry bcm2836_arm_irqchip_handle_irq(struct pt_regs *regs) u32 ipi = ffs(mbox_val) - 1; writel(1 << ipi, mailbox0); + dsb(sy); handle_IPI(ipi, regs); #endif } else if (stat) { |