|
@@ -306,7 +306,7 @@ sysret_signal:
|
|
leaq -ARGOFFSET(%rsp),%rdi # &pt_regs -> arg1
|
|
leaq -ARGOFFSET(%rsp),%rdi # &pt_regs -> arg1
|
|
xorl %esi,%esi # oldset -> arg2
|
|
xorl %esi,%esi # oldset -> arg2
|
|
call ptregscall_common
|
|
call ptregscall_common
|
|
-1: movl $_TIF_NEED_RESCHED,%edi
|
|
|
|
|
|
+1: movl $_TIF_WORK_MASK,%edi
|
|
/* Use IRET because user could have changed frame. This
|
|
/* Use IRET because user could have changed frame. This
|
|
works because ptregscall_common has called FIXUP_TOP_OF_STACK. */
|
|
works because ptregscall_common has called FIXUP_TOP_OF_STACK. */
|
|
DISABLE_INTERRUPTS(CLBR_NONE)
|
|
DISABLE_INTERRUPTS(CLBR_NONE)
|
|
@@ -394,7 +394,7 @@ int_signal:
|
|
movq %rsp,%rdi # &ptregs -> arg1
|
|
movq %rsp,%rdi # &ptregs -> arg1
|
|
xorl %esi,%esi # oldset -> arg2
|
|
xorl %esi,%esi # oldset -> arg2
|
|
call do_notify_resume
|
|
call do_notify_resume
|
|
-1: movl $_TIF_NEED_RESCHED,%edi
|
|
|
|
|
|
+1: movl $_TIF_WORK_MASK,%edi
|
|
int_restore_rest:
|
|
int_restore_rest:
|
|
RESTORE_REST
|
|
RESTORE_REST
|
|
DISABLE_INTERRUPTS(CLBR_NONE)
|
|
DISABLE_INTERRUPTS(CLBR_NONE)
|
|
@@ -647,9 +647,8 @@ retint_signal:
|
|
RESTORE_REST
|
|
RESTORE_REST
|
|
DISABLE_INTERRUPTS(CLBR_NONE)
|
|
DISABLE_INTERRUPTS(CLBR_NONE)
|
|
TRACE_IRQS_OFF
|
|
TRACE_IRQS_OFF
|
|
- movl $_TIF_NEED_RESCHED,%edi
|
|
|
|
GET_THREAD_INFO(%rcx)
|
|
GET_THREAD_INFO(%rcx)
|
|
- jmp retint_check
|
|
|
|
|
|
+ jmp retint_with_reschedule
|
|
|
|
|
|
#ifdef CONFIG_PREEMPT
|
|
#ifdef CONFIG_PREEMPT
|
|
/* Returning to kernel space. Check if we need preemption */
|
|
/* Returning to kernel space. Check if we need preemption */
|