]> git.baikalelectronics.ru Git - kernel.git/commit
irqchip: mips-gic: Fix pending & mask reads for MIPS64 with 32b GIC.
authorPaul Burton <paul.burton@imgtec.com>
Tue, 22 Sep 2015 18:29:11 +0000 (11:29 -0700)
committerRalf Baechle <ralf@linux-mips.org>
Sun, 27 Sep 2015 12:11:18 +0000 (14:11 +0200)
commitdf4f1259036039852c2704aa3ce59186ac67769d
tree5100ac3b99c31ed538cf7fcd149a42d67e1f204c
parent2d8afebc4407d7a99dde41ba57a1715e99a8a64f
irqchip: mips-gic: Fix pending & mask reads for MIPS64 with 32b GIC.

gic_handle_shared_int reads the GIC interrupt pending & mask registers
directly into a bitmap, which is defined as an array of unsigned longs.
The GIC pending registers may be 32 bits wide if the CM is older than
CM3, regardless of the bit width of the CPU, but for MIPS64 kernels
the unsigned longs in the bitmap will be 64 bits wide. In this case we
need to perform 2 x 32 bit reads per 64 bit unsigned long in order to
avoid missing interrupts.

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-mips@linux-mips.org
Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: linux-kernel@vger.kernel.org
Patchwork: https://patchwork.linux-mips.org/patch/11213/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
drivers/irqchip/irq-mips-gic.c