[PATCH] x86_64: Call do_notify_resume unconditionally in entry.S

This removes some unnecessary code in the assembly files.

Matches i386 behaviour.

In addition don't clear the work check mask after work has been done.
This fixes some theoretical signal/other event losses.

Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
diff --git a/arch/x86_64/kernel/entry.S b/arch/x86_64/kernel/entry.S
index 053d6e8..12a3071 100644
--- a/arch/x86_64/kernel/entry.S
+++ b/arch/x86_64/kernel/entry.S
@@ -197,7 +197,7 @@
  */		
 	.globl ret_from_sys_call
 ret_from_sys_call:
-	movl $_TIF_WORK_MASK,%edi
+	movl $_TIF_ALLWORK_MASK,%edi
 	/* edi:	flagmask */
 sysret_check:		
 	GET_THREAD_INFO(%rcx)
@@ -223,18 +223,13 @@
 	jmp sysret_check
 
 	/* Handle a signal */ 
+	/* edx:	work flags (arg3) */
 sysret_signal:
 	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 -ARGOFFSET(%rsp),%rdi # &pt_regs -> arg1
 	xorl %esi,%esi # oldset -> arg2
 	call ptregscall_common
-1:	movl $_TIF_NEED_RESCHED,%edi
 	jmp sysret_check
 	
 	/* Do syscall tracing */
@@ -490,8 +485,6 @@
 	jmp retint_check
 	
 retint_signal:
-	testl $(_TIF_SIGPENDING|_TIF_NOTIFY_RESUME|_TIF_SINGLESTEP),%edx
-	jz    retint_swapgs
 	sti
 	SAVE_REST
 	movq $-1,ORIG_RAX(%rsp) 			
@@ -500,7 +493,6 @@
 	call do_notify_resume
 	RESTORE_REST
 	cli
-	movl $_TIF_NEED_RESCHED,%edi
 	GET_THREAD_INFO(%rcx)	
 	jmp retint_check
 
@@ -829,21 +821,19 @@
 	cli
 	GET_THREAD_INFO(%rcx)
 	movl threadinfo_flags(%rcx),%edx
+	testl $_TIF_WORK_MASK,%edx
+	jz paranoid_swapgs
 	testl $_TIF_NEED_RESCHED,%edx
 	jnz paranoid_resched
-	testl $(_TIF_SIGPENDING|_TIF_NOTIFY_RESUME|_TIF_SINGLESTEP),%edx
-	jnz paranoid_signal
-	jmp paranoid_swapgs
-paranoid_resched:		
-	sti
-	call schedule
-	jmp paranoid_exit
-paranoid_signal:		
 	sti
 	xorl %esi,%esi /* oldset */
 	movq %rsp,%rdi /* &pt_regs */
 	call do_notify_resume
 	jmp paranoid_exit
+paranoid_resched:
+	sti
+	call schedule
+	jmp paranoid_exit
 	CFI_ENDPROC
 	
 ENTRY(int3)