aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSumit Semwal <sumit.semwal@linaro.org>2018-06-06 16:52:27 +0530
committerSumit Semwal <sumit.semwal@linaro.org>2018-06-06 16:52:27 +0530
commit7f4d1304e8cc98c9b8ee49c4012a3aebe6728a1d (patch)
treef6e3c9411f9d05ddafa9927f9253360cda7e9aa0
parentaf6c5d5e01ad9f2c9ca38cccaae6b5d67ddd241f (diff)
signal.c: Dave martin's solution for seccomp_bpf test.mainline_master
Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
-rw-r--r--arch/arm64/kernel/signal.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/arm64/kernel/signal.c b/arch/arm64/kernel/signal.c
index 154b7d30145d..f21209064041 100644
--- a/arch/arm64/kernel/signal.c
+++ b/arch/arm64/kernel/signal.c
@@ -830,11 +830,12 @@ static void do_signal(struct pt_regs *regs)
unsigned long continue_addr = 0, restart_addr = 0;
int retval = 0;
struct ksignal ksig;
+ bool syscall = in_syscall(regs);
/*
* If we were from a system call, check for system call restarting...
*/
- if (in_syscall(regs)) {
+ if (syscall) {
continue_addr = regs->pc;
restart_addr = continue_addr - (compat_thumb_mode(regs) ? 2 : 4);
retval = regs->regs[0];
@@ -886,7 +887,7 @@ static void do_signal(struct pt_regs *regs)
* Handle restarting a different system call. As above, if a debugger
* has chosen to restart at a different PC, ignore the restart.
*/
- if (in_syscall(regs) && regs->pc == restart_addr) {
+ if (syscall && regs->pc == restart_addr) {
if (retval == -ERESTART_RESTARTBLOCK)
setup_restart_syscall(regs);
user_rewind_single_step(current);