summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorKristina Martsenko <kristina.martsenko@arm.com>2017-06-06 20:14:10 +0100
committerSasha Levin <alexander.levin@verizon.com>2017-06-25 22:02:20 -0400
commit9da808668b5883c4d6b147f5ec7a89a8971508fa (patch)
tree7564f06821e42d0587988734d0081d5d153097d0 /lib
parent47e49f2d1eda8c7a52a647239e41e625c1d8dfd8 (diff)
arm64: entry: improve data abort handling of tagged pointers
[ Upstream commit 276e93279a630657fff4b086ba14c95955912dfa ] When handling a data abort from EL0, we currently zero the top byte of the faulting address, as we assume the address is a TTBR0 address, which may contain a non-zero address tag. However, the address may be a TTBR1 address, in which case we should not zero the top byte. This patch fixes that. The effect is that the full TTBR1 address is passed to the task's signal handler (or printed out in the kernel log). When handling a data abort from EL1, we leave the faulting address intact, as we assume it's either a TTBR1 address or a TTBR0 address with tag 0x00. This is true as far as I'm aware, we don't seem to access a tagged TTBR0 address anywhere in the kernel. Regardless, it's easy to forget about address tags, and code added in the future may not always remember to remove tags from addresses before accessing them. So add tag handling to the EL1 data abort handler as well. This also makes it consistent with the EL0 data abort handler. Fixes: d50240a5f6ce ("arm64: mm: permit use of tagged pointers at EL0") Cc: <stable@vger.kernel.org> # 3.12.x- Reviewed-by: Dave Martin <Dave.Martin@arm.com> Acked-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Kristina Martsenko <kristina.martsenko@arm.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions