diff options
Diffstat (limited to 'arch/arm/kernel/entry-common.S')
-rw-r--r-- | arch/arm/kernel/entry-common.S | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S index f05a35a59694..7885722bdf4e 100644 --- a/arch/arm/kernel/entry-common.S +++ b/arch/arm/kernel/entry-common.S | |||
@@ -48,6 +48,8 @@ work_pending: | |||
48 | beq no_work_pending | 48 | beq no_work_pending |
49 | mov r0, sp @ 'regs' | 49 | mov r0, sp @ 'regs' |
50 | mov r2, why @ 'syscall' | 50 | mov r2, why @ 'syscall' |
51 | tst r1, #_TIF_SIGPENDING @ delivering a signal? | ||
52 | movne why, #0 @ prevent further restarts | ||
51 | bl do_notify_resume | 53 | bl do_notify_resume |
52 | b ret_slow_syscall @ Check work again | 54 | b ret_slow_syscall @ Check work again |
53 | 55 | ||
@@ -418,11 +420,13 @@ ENDPROC(sys_clone_wrapper) | |||
418 | 420 | ||
419 | sys_sigreturn_wrapper: | 421 | sys_sigreturn_wrapper: |
420 | add r0, sp, #S_OFF | 422 | add r0, sp, #S_OFF |
423 | mov why, #0 @ prevent syscall restart handling | ||
421 | b sys_sigreturn | 424 | b sys_sigreturn |
422 | ENDPROC(sys_sigreturn_wrapper) | 425 | ENDPROC(sys_sigreturn_wrapper) |
423 | 426 | ||
424 | sys_rt_sigreturn_wrapper: | 427 | sys_rt_sigreturn_wrapper: |
425 | add r0, sp, #S_OFF | 428 | add r0, sp, #S_OFF |
429 | mov why, #0 @ prevent syscall restart handling | ||
426 | b sys_rt_sigreturn | 430 | b sys_rt_sigreturn |
427 | ENDPROC(sys_rt_sigreturn_wrapper) | 431 | ENDPROC(sys_rt_sigreturn_wrapper) |
428 | 432 | ||