MIPS: R2: Fix local_irq_save()
authorMaxime Bizon <mbizon@freebox.fr>
Tue, 20 Dec 2005 05:32:19 +0000 (06:32 +0100)
committer <ralf@denk.linux-mips.net> <>
Tue, 10 Jan 2006 13:39:08 +0000 (13:39 +0000)
local_irq_restore uses di which saves the whole status content, not
just the IE bit resulting in  local_irq_restore() to fail.  This only
happens if both CONFIG_CPU_MIPSR2 and CONFIG_IRQ_CPU are enabled.

Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
include/asm-mips/interrupt.h

index a5735761f5e58054498b32a03bed21df06339470..abdf54ee64cf306d35b0dd32702c5fed061d4f58 100644 (file)
@@ -93,6 +93,7 @@ __asm__ (
        "       .set    noat                                            \n"
 #ifdef CONFIG_CPU_MIPSR2
        "       di      \\result                                        \n"
+       "       andi    \\result, 1                                     \n"
 #else
        "       mfc0    \\result, $12                                   \n"
        "       ori     $1, \\result, 1                                 \n"