[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>
This commit is contained in:
parent
75bdb426a1
commit
2e66fe24d6
@ -114,6 +114,7 @@ __asm__ __volatile__( \
|
|||||||
|
|
||||||
__asm__ (
|
__asm__ (
|
||||||
" .macro local_irq_restore flags \n"
|
" .macro local_irq_restore flags \n"
|
||||||
|
" .set push \n"
|
||||||
" .set noreorder \n"
|
" .set noreorder \n"
|
||||||
" .set noat \n"
|
" .set noat \n"
|
||||||
#if defined(CONFIG_CPU_MIPSR2) && defined(CONFIG_IRQ_CPU)
|
#if defined(CONFIG_CPU_MIPSR2) && defined(CONFIG_IRQ_CPU)
|
||||||
@ -141,8 +142,7 @@ __asm__ (
|
|||||||
" mtc0 \\flags, $12 \n"
|
" mtc0 \\flags, $12 \n"
|
||||||
#endif
|
#endif
|
||||||
" irq_disable_hazard \n"
|
" irq_disable_hazard \n"
|
||||||
" .set at \n"
|
" .set pop \n"
|
||||||
" .set reorder \n"
|
|
||||||
" .endm \n");
|
" .endm \n");
|
||||||
|
|
||||||
#define local_irq_restore(flags) \
|
#define local_irq_restore(flags) \
|
||||||
|
Loading…
Reference in New Issue
Block a user