From: "Andi Kleen" <ak@suse.de>

Fix a pretty bad bug in the x86-64 preempt support.  The test for interrupts
off was done the wrong way round, which would lead to kernel preemption only
when interrupts were off.  

Found by Jan Beulich.

Signed-off-by: Andi Kleen <ak@suse.de>
Cc: <JBeulich@novell.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/arch/x86_64/kernel/entry.S |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)

diff -puN arch/x86_64/kernel/entry.S~x86_64-fix-config_preempt arch/x86_64/kernel/entry.S
--- 25/arch/x86_64/kernel/entry.S~x86_64-fix-config_preempt	Wed Mar 23 15:39:09 2005
+++ 25-akpm/arch/x86_64/kernel/entry.S	Wed Mar 23 15:39:09 2005
@@ -516,7 +516,7 @@ retint_kernel:	
 	bt  $TIF_NEED_RESCHED,threadinfo_flags(%rcx)
 	jnc  retint_restore_args
 	bt   $9,EFLAGS-ARGOFFSET(%rsp)	/* interrupts off? */
-	jc   retint_restore_args
+	jnc  retint_restore_args
 	movl $PREEMPT_ACTIVE,threadinfo_preempt_count(%rcx)
 	sti
 	call schedule
_