[PATCH] x86_64: Readd missing tests in entry.S
Cleans up the system exit call slightly and synchronizes with my tree again. Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
ac6b931c44
commit
10ffdbb8d6
@@ -220,13 +220,18 @@ sysret_careful:
|
|||||||
jmp sysret_check
|
jmp sysret_check
|
||||||
|
|
||||||
/* Handle a signal */
|
/* Handle a signal */
|
||||||
/* edx: work flags (arg3) */
|
|
||||||
sysret_signal:
|
sysret_signal:
|
||||||
sti
|
sti
|
||||||
|
testl $(_TIF_SIGPENDING|_TIF_NOTIFY_RESUME|_TIF_SINGLESTEP),%edx
|
||||||
|
jz 1f
|
||||||
|
|
||||||
|
/* Really a signal */
|
||||||
|
/* edx: work flags (arg3) */
|
||||||
leaq do_notify_resume(%rip),%rax
|
leaq do_notify_resume(%rip),%rax
|
||||||
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
|
||||||
jmp sysret_check
|
jmp sysret_check
|
||||||
|
|
||||||
/* Do syscall tracing */
|
/* Do syscall tracing */
|
||||||
@@ -484,6 +489,8 @@ retint_careful:
|
|||||||
jmp retint_check
|
jmp retint_check
|
||||||
|
|
||||||
retint_signal:
|
retint_signal:
|
||||||
|
testl $(_TIF_SIGPENDING|_TIF_NOTIFY_RESUME|_TIF_SINGLESTEP),%edx
|
||||||
|
jz retint_swapgs
|
||||||
sti
|
sti
|
||||||
SAVE_REST
|
SAVE_REST
|
||||||
movq $-1,ORIG_RAX(%rsp)
|
movq $-1,ORIG_RAX(%rsp)
|
||||||
@@ -492,8 +499,8 @@ retint_signal:
|
|||||||
call do_notify_resume
|
call do_notify_resume
|
||||||
RESTORE_REST
|
RESTORE_REST
|
||||||
cli
|
cli
|
||||||
|
movl $_TIF_NEED_RESCHED,%edi
|
||||||
GET_THREAD_INFO(%rcx)
|
GET_THREAD_INFO(%rcx)
|
||||||
movl $_TIF_WORK_MASK,%edi
|
|
||||||
jmp retint_check
|
jmp retint_check
|
||||||
|
|
||||||
#ifdef CONFIG_PREEMPT
|
#ifdef CONFIG_PREEMPT
|
||||||
|
Reference in New Issue
Block a user