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>
This commit is contained in:
Will Deacon
2018-02-20 14:16:29 +00:00
parent e0f6429dc1
commit 2c9120f3a8
4 changed files with 17 additions and 19 deletions

View File

@@ -429,7 +429,7 @@ ret:
fault:
pr_debug("SWP{B} emulation: access caused memory abort!\n");
arm64_notify_segfault(regs, address);
arm64_notify_segfault(address);
return 0;
}