irqchip/gicv3-its: Add workaround for QDF2400 ITS erratum 0065
authorShanker Donthineni <shankerd@codeaurora.org>
Tue, 7 Mar 2017 14:20:38 +0000 (08:20 -0600)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 22 Mar 2017 11:43:39 +0000 (12:43 +0100)
commit095635be809ade2429c844d09e8391330fa9bca4
tree38e68db695e90d0480a357000fdc2a8dd70e2ff8
parent61e79860b4bc6259a9685a107a6b34352d6dc7bd
irqchip/gicv3-its: Add workaround for QDF2400 ITS erratum 0065

commit 90922a2d03d84de36bf8a9979d62580102f31a92 upstream.

On Qualcomm Datacenter Technologies QDF2400 SoCs, the ITS hardware
implementation uses 16Bytes for Interrupt Translation Entry (ITE),
but reports an incorrect value of 8Bytes in GITS_TYPER.ITTE_size.

It might cause kernel memory corruption depending on the number
of MSI(x) that are configured and the amount of memory that has
been allocated for ITEs in its_create_device().

This patch fixes the potential memory corruption by setting the
correct ITE size to 16Bytes.

Cc: stable@vger.kernel.org
Signed-off-by: Shanker Donthineni <shankerd@codeaurora.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Documentation/arm64/silicon-errata.txt
arch/arm64/Kconfig
drivers/irqchip/irq-gic-v3-its.c