From: "Andi Kleen" 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 Cc: Signed-off-by: Andrew Morton --- 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 _