summaryrefslogtreecommitdiffstats
path: root/include/asm-mips/interrupt.h
diff options
context:
space:
mode:
authorMaxime Bizon <mbizon@freebox.fr>2005-12-20 06:32:19 +0100
committer <ralf@denk.linux-mips.net>2006-01-10 13:39:08 +0000
commit15265251c5c68fbabdf561cf704e3e305349715a (patch)
tree9805638b9655e4ddcbbdb1c6472f7ba7ce797d60 /include/asm-mips/interrupt.h
parentd4ea001dd0912a14967266581601494d94a4c565 (diff)
MIPS: R2: Fix local_irq_save()
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>
Diffstat (limited to 'include/asm-mips/interrupt.h')
-rw-r--r--include/asm-mips/interrupt.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/asm-mips/interrupt.h b/include/asm-mips/interrupt.h
index a5735761f5e5..abdf54ee64cf 100644
--- a/include/asm-mips/interrupt.h
+++ b/include/asm-mips/interrupt.h
@@ -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"