]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
arm64: errata: add workaround for cortex-a53 erratum #845719
authorWill Deacon <will.deacon@arm.com>
Fri, 24 Apr 2015 17:30:51 +0000 (10:30 -0700)
committerSasha Levin <sasha.levin@oracle.com>
Mon, 27 Apr 2015 21:13:46 +0000 (17:13 -0400)
commit5430a02112fc962e5dff5feee6e3fcdacc00357f
tree064c0065c440ebc23b75290aebefb84aeeee4610
parent62ef31e125604cd61363f33eeffbb17edfbc8c97
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.
This workaround is patched in at runtime based on the MIDR value of the
processor.

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>
Cc: <stable@vger.kernel.org> # v3.18.y
(cherry picked from commit 905e8c5dcaa147163672b06fe9dcb5abaacbc711)
Signed-off-by: Kevin Hilman <khilman@linaro.org>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
arch/arm64/Kconfig
arch/arm64/include/asm/cpufeature.h
arch/arm64/kernel/cpu_errata.c
arch/arm64/kernel/entry.S