summaryrefslogtreecommitdiffstats
path: root/arch/arm64/include/asm/traps.h
diff options
context:
space:
mode:
authorWill Deacon <will.deacon@arm.com>2018-02-20 14:16:29 +0000
committerWill Deacon <will.deacon@arm.com>2018-03-06 18:52:22 +0000
commit2c9120f3a86a809518ece1787d76ae07dd01e01b (patch)
tree3d4a4cd0c4454122dc14d5f1a2feb1fd66619074 /arch/arm64/include/asm/traps.h
parente0f6429dc1c0aeac8439e16a0c8e2539f401190f (diff)
downloadlinux-2c9120f3a86a809518ece1787d76ae07dd01e01b.tar.bz2
arm64: signal: Make force_signal_inject more robust
force_signal_inject is a little flakey: * It only knows about SIGILL and SIGSEGV, so can potentially deliver other signals based on a partially initialised siginfo_t * It sets si_addr to point at the PC for SIGSEGV * It always operates on current, so doesn't need the regs argument This patch fixes these issues by always assigning the si_addr field to the address parameter of the function and updates the callers (including those that indirectly call via arm64_notify_segfault) accordingly. Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arch/arm64/include/asm/traps.h')
-rw-r--r--arch/arm64/include/asm/traps.h6
1 files changed, 2 insertions, 4 deletions
diff --git a/arch/arm64/include/asm/traps.h b/arch/arm64/include/asm/traps.h
index 178e338d2889..1ee63dc38579 100644
--- a/arch/arm64/include/asm/traps.h
+++ b/arch/arm64/include/asm/traps.h
@@ -35,10 +35,8 @@ struct undef_hook {
void register_undef_hook(struct undef_hook *hook);
void unregister_undef_hook(struct undef_hook *hook);
-void force_signal_inject(int signal, int code, struct pt_regs *regs,
- unsigned long address);
-
-void arm64_notify_segfault(struct pt_regs *regs, unsigned long addr);
+void force_signal_inject(int signal, int code, unsigned long address);
+void arm64_notify_segfault(unsigned long addr);
/*
* Move regs->pc to next instruction and do necessary setup before it