arm64: errata: add workaround for cortex-a53 erratum #845719
authorWill Deacon <will.deacon@arm.com>
Mon, 23 Mar 2015 19:07:02 +0000 (19:07 +0000)
committerKevin Hilman <khilman@linaro.org>
Mon, 18 May 2015 23:16:15 +0000 (16:16 -0700)
commita0121477d2c5e7b62436edca6dac4cd8058c15a5
tree2b46b301ba1b982339c222e2f9566b095d33f4e4
parent96dade5633c3ebb68fc191fd2cc03f89fc4f57f9
arm64: errata: add workaround for cortex-a53 erratum #845719

When running a compat (AArch32) userspace on Cortex-A53, a load at EL0
from a virtual address that matches the bottom 32 bits of the virtual
address used by a recent load at (AArch64) EL1 might return incorrect
data.

This patch works around the issue by writing to the contextidr_el1
register on the exception return path when returning to a 32-bit task.

Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
Tested-by: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
(cherry picked from commit 905e8c5dcaa147163672b06fe9dcb5abaacbc711)
[khilman: modified to remove dependency on alternatives framwork.  Feature
          is now only compile-time selectable, and defaults to off. ]
Signed-off-by: Kevin Hilman <khilman@linaro.org>
arch/arm64/Kconfig
arch/arm64/kernel/entry.S