ChangeSet 1.2188, 2005/03/29 07:43:57-08:00, [EMAIL PROTECTED]

        [PATCH] x86-64: Fix preemption off of irq context with PREEMPT_BKL
        
        Fixing the interrupt tst for CONFIG_PREEMPT on x86-64 exposes another
        bug with CONFIG_PREEMPT_BKL.  Calling schedule due to preemption
        releases the BKL which it shouldn't do.
        
        Call preempt_schedule_irq instead (like for i386).  This fixes the
        easily reproducible filesystem errors I've seen (with reiserfs, which
        heavily relies on the BKL).
        
        Signed-off-by: Christophe Saout <[EMAIL PROTECTED]>
        Signed-off-by: Andi Kleen  <[EMAIL PROTECTED]>
        Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>



 entry.S |    7 +------
 1 files changed, 1 insertion(+), 6 deletions(-)


diff -Nru a/arch/x86_64/kernel/entry.S b/arch/x86_64/kernel/entry.S
--- a/arch/x86_64/kernel/entry.S        2005-03-29 08:08:24 -08:00
+++ b/arch/x86_64/kernel/entry.S        2005-03-29 08:08:24 -08:00
@@ -517,12 +517,7 @@
        jnc  retint_restore_args
        bt   $9,EFLAGS-ARGOFFSET(%rsp)  /* interrupts off? */
        jnc  retint_restore_args
-       movl $PREEMPT_ACTIVE,threadinfo_preempt_count(%rcx)
-       sti
-       call schedule
-       cli
-       GET_THREAD_INFO(%rcx)
-       movl $0,threadinfo_preempt_count(%rcx) 
+       call preempt_schedule_irq
        jmp exit_intr
 #endif 
        CFI_ENDPROC
-
To unsubscribe from this list: send the line "unsubscribe bk-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to