]> git.ipfire.org Git - people/ms/linux.git/commit
arm64: expose FAR_EL1 tag bits in siginfo
authorPeter Collingbourne <pcc@google.com>
Fri, 20 Nov 2020 20:33:46 +0000 (12:33 -0800)
committerCatalin Marinas <catalin.marinas@arm.com>
Mon, 23 Nov 2020 18:17:39 +0000 (18:17 +0000)
commitdceec3ff78076757311d92a388d50d0251fb7dbb
treee51d2de16335fcd21dce9f5342846d5e868b14ad
parent6ac05e832a9e96f9b1c42a8917cdd317d7b6c8fa
arm64: expose FAR_EL1 tag bits in siginfo

The kernel currently clears the tag bits (i.e. bits 56-63) in the fault
address exposed via siginfo.si_addr and sigcontext.fault_address. However,
the tag bits may be needed by tools in order to accurately diagnose
memory errors, such as HWASan [1] or future tools based on the Memory
Tagging Extension (MTE).

Expose these bits via the arch_untagged_si_addr mechanism, so that
they are only exposed to signal handlers with the SA_EXPOSE_TAGBITS
flag set.

[1] http://clang.llvm.org/docs/HardwareAssistedAddressSanitizerDesign.html

Signed-off-by: Peter Collingbourne <pcc@google.com>
Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Link: https://linux-review.googlesource.com/id/Ia8876bad8c798e0a32df7c2ce1256c4771c81446
Link: https://lore.kernel.org/r/0010296597784267472fa13b39f8238d87a72cf8.1605904350.git.pcc@google.com
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Documentation/arm64/tagged-pointers.rst
arch/arm64/include/asm/exception.h
arch/arm64/include/asm/signal.h [new file with mode: 0644]
arch/arm64/include/asm/system_misc.h
arch/arm64/include/asm/traps.h
arch/arm64/kernel/debug-monitors.c
arch/arm64/kernel/entry-common.c
arch/arm64/kernel/ptrace.c
arch/arm64/kernel/sys_compat.c
arch/arm64/kernel/traps.c
arch/arm64/mm/fault.c