|
@@ -430,12 +430,12 @@ C_ENTRY(ret_from_trap):
|
|
|
5: /* get thread info from current task*/
|
|
|
lwi r11, CURRENT_TASK, TS_THREAD_INFO;
|
|
|
lwi r11, r11, TI_FLAGS; /* get flags in thread info */
|
|
|
- andi r11, r11, _TIF_SIGPENDING;
|
|
|
+ andi r11, r11, _TIF_SIGPENDING | _TIF_NOTIFY_RESUME;
|
|
|
beqi r11, 1f; /* Signals to handle, handle them */
|
|
|
|
|
|
addik r5, r1, 0; /* Arg 1: struct pt_regs *regs */
|
|
|
addi r7, r0, 1; /* Arg 3: int in_syscall */
|
|
|
- bralid r15, do_signal; /* Handle any signals */
|
|
|
+ bralid r15, do_notify_resume; /* Handle any signals */
|
|
|
add r6, r0, r0; /* Arg 2: sigset_t *oldset */
|
|
|
|
|
|
/* Finally, return to user state. */
|
|
@@ -622,7 +622,7 @@ C_ENTRY(ret_from_exc):
|
|
|
/* Maybe handle a signal */
|
|
|
5: lwi r11, CURRENT_TASK, TS_THREAD_INFO; /* get thread info */
|
|
|
lwi r11, r11, TI_FLAGS; /* get flags in thread info */
|
|
|
- andi r11, r11, _TIF_SIGPENDING;
|
|
|
+ andi r11, r11, _TIF_SIGPENDING | _TIF_NOTIFY_RESUME;
|
|
|
beqi r11, 1f; /* Signals to handle, handle them */
|
|
|
|
|
|
/*
|
|
@@ -635,10 +635,10 @@ C_ENTRY(ret_from_exc):
|
|
|
* traps), but signal handlers may want to examine or change the
|
|
|
* complete register state. Here we save anything not saved by
|
|
|
* the normal entry sequence, so that it may be safely restored
|
|
|
- * (in a possibly modified form) after do_signal returns. */
|
|
|
+ * (in a possibly modified form) after do_notify_resume returns. */
|
|
|
addik r5, r1, 0; /* Arg 1: struct pt_regs *regs */
|
|
|
addi r7, r0, 0; /* Arg 3: int in_syscall */
|
|
|
- bralid r15, do_signal; /* Handle any signals */
|
|
|
+ bralid r15, do_notify_resume; /* Handle any signals */
|
|
|
add r6, r0, r0; /* Arg 2: sigset_t *oldset */
|
|
|
|
|
|
/* Finally, return to user state. */
|
|
@@ -732,12 +732,12 @@ ret_from_irq:
|
|
|
/* Maybe handle a signal */
|
|
|
5: lwi r11, CURRENT_TASK, TS_THREAD_INFO; /* MS: get thread info */
|
|
|
lwi r11, r11, TI_FLAGS; /* get flags in thread info */
|
|
|
- andi r11, r11, _TIF_SIGPENDING;
|
|
|
+ andi r11, r11, _TIF_SIGPENDING | _TIF_NOTIFY_RESUME;
|
|
|
beqid r11, no_intr_resched
|
|
|
/* Handle a signal return; Pending signals should be in r18. */
|
|
|
addi r7, r0, 0; /* Arg 3: int in_syscall */
|
|
|
addik r5, r1, 0; /* Arg 1: struct pt_regs *regs */
|
|
|
- bralid r15, do_signal; /* Handle any signals */
|
|
|
+ bralid r15, do_notify_resume; /* Handle any signals */
|
|
|
add r6, r0, r0; /* Arg 2: sigset_t *oldset */
|
|
|
|
|
|
/* Finally, return to user state. */
|
|
@@ -869,12 +869,12 @@ dbtrap_call: /* Return point for kernel/user entry + 8 because of rtsd r15, 8 */
|
|
|
/* Maybe handle a signal */
|
|
|
5: lwi r11, CURRENT_TASK, TS_THREAD_INFO; /* get thread info */
|
|
|
lwi r11, r11, TI_FLAGS; /* get flags in thread info */
|
|
|
- andi r11, r11, _TIF_SIGPENDING;
|
|
|
+ andi r11, r11, _TIF_SIGPENDING | _TIF_NOTIFY_RESUME;
|
|
|
beqi r11, 1f; /* Signals to handle, handle them */
|
|
|
|
|
|
addik r5, r1, 0; /* Arg 1: struct pt_regs *regs */
|
|
|
addi r7, r0, 0; /* Arg 3: int in_syscall */
|
|
|
- bralid r15, do_signal; /* Handle any signals */
|
|
|
+ bralid r15, do_notify_resume; /* Handle any signals */
|
|
|
add r6, r0, r0; /* Arg 2: sigset_t *oldset */
|
|
|
|
|
|
/* Finally, return to user state. */
|