mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-14 14:34:28 +08:00
dceec3ff78
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>
40 lines
947 B
C
40 lines
947 B
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* Based on arch/arm/include/asm/system_misc.h
|
|
*
|
|
* Copyright (C) 2012 ARM Ltd.
|
|
*/
|
|
#ifndef __ASM_SYSTEM_MISC_H
|
|
#define __ASM_SYSTEM_MISC_H
|
|
|
|
#ifndef __ASSEMBLY__
|
|
|
|
#include <linux/compiler.h>
|
|
#include <linux/linkage.h>
|
|
#include <linux/irqflags.h>
|
|
#include <linux/signal.h>
|
|
#include <linux/ratelimit.h>
|
|
#include <linux/reboot.h>
|
|
|
|
struct pt_regs;
|
|
|
|
void die(const char *msg, struct pt_regs *regs, int err);
|
|
|
|
struct siginfo;
|
|
void arm64_notify_die(const char *str, struct pt_regs *regs,
|
|
int signo, int sicode, unsigned long far,
|
|
int err);
|
|
|
|
void hook_debug_fault_code(int nr, int (*fn)(unsigned long, unsigned int,
|
|
struct pt_regs *),
|
|
int sig, int code, const char *name);
|
|
|
|
struct mm_struct;
|
|
extern void __show_regs(struct pt_regs *);
|
|
|
|
extern void (*arm_pm_restart)(enum reboot_mode reboot_mode, const char *cmd);
|
|
|
|
#endif /* __ASSEMBLY__ */
|
|
|
|
#endif /* __ASM_SYSTEM_MISC_H */
|