diff options
author | Maxime Bizon <mbizon@freebox.fr> | 2005-12-20 00:32:19 -0500 |
---|---|---|
committer | <ralf@denk.linux-mips.net> | 2006-01-10 08:39:08 -0500 |
commit | 15265251c5c68fbabdf561cf704e3e305349715a (patch) | |
tree | 9805638b9655e4ddcbbdb1c6472f7ba7ce797d60 | |
parent | d4ea001dd0912a14967266581601494d94a4c565 (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>
-rw-r--r-- | include/asm-mips/interrupt.h | 1 |
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__ ( | |||
93 | " .set noat \n" | 93 | " .set noat \n" |
94 | #ifdef CONFIG_CPU_MIPSR2 | 94 | #ifdef CONFIG_CPU_MIPSR2 |
95 | " di \\result \n" | 95 | " di \\result \n" |
96 | " andi \\result, 1 \n" | ||
96 | #else | 97 | #else |
97 | " mfc0 \\result, $12 \n" | 98 | " mfc0 \\result, $12 \n" |
98 | " ori $1, \\result, 1 \n" | 99 | " ori $1, \\result, 1 \n" |