diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2006-01-30 11:48:26 -0500 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2006-02-07 08:30:24 -0500 |
commit | 2e66fe24d6faa287088ff18051dd423a32b60502 (patch) | |
tree | fb2fcfd609b44f0ae415e0961843e1de6eccaaee /include/asm-mips | |
parent | 75bdb426a16e81adcbc4c3d7f946018cd47830d1 (diff) |
[MIPS] local_irq_restore wasn't safe to be used in other macros mode.
It always left the assembler in reorder mode possibly causing disaster.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'include/asm-mips')
-rw-r--r-- | include/asm-mips/interrupt.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/include/asm-mips/interrupt.h b/include/asm-mips/interrupt.h index abdf54ee64cf..0da5818a2d62 100644 --- a/include/asm-mips/interrupt.h +++ b/include/asm-mips/interrupt.h | |||
@@ -114,6 +114,7 @@ __asm__ __volatile__( \ | |||
114 | 114 | ||
115 | __asm__ ( | 115 | __asm__ ( |
116 | " .macro local_irq_restore flags \n" | 116 | " .macro local_irq_restore flags \n" |
117 | " .set push \n" | ||
117 | " .set noreorder \n" | 118 | " .set noreorder \n" |
118 | " .set noat \n" | 119 | " .set noat \n" |
119 | #if defined(CONFIG_CPU_MIPSR2) && defined(CONFIG_IRQ_CPU) | 120 | #if defined(CONFIG_CPU_MIPSR2) && defined(CONFIG_IRQ_CPU) |
@@ -141,8 +142,7 @@ __asm__ ( | |||
141 | " mtc0 \\flags, $12 \n" | 142 | " mtc0 \\flags, $12 \n" |
142 | #endif | 143 | #endif |
143 | " irq_disable_hazard \n" | 144 | " irq_disable_hazard \n" |
144 | " .set at \n" | 145 | " .set pop \n" |
145 | " .set reorder \n" | ||
146 | " .endm \n"); | 146 | " .endm \n"); |
147 | 147 | ||
148 | #define local_irq_restore(flags) \ | 148 | #define local_irq_restore(flags) \ |