diff options
Diffstat (limited to 'arch/mips/lib/mips-atomic.c')
-rw-r--r-- | arch/mips/lib/mips-atomic.c | 30 |
1 files changed, 1 insertions, 29 deletions
diff --git a/arch/mips/lib/mips-atomic.c b/arch/mips/lib/mips-atomic.c index 272af8ac2425..5530070e0d05 100644 --- a/arch/mips/lib/mips-atomic.c +++ b/arch/mips/lib/mips-atomic.c | |||
@@ -57,7 +57,6 @@ notrace void arch_local_irq_disable(void) | |||
57 | } | 57 | } |
58 | EXPORT_SYMBOL(arch_local_irq_disable); | 58 | EXPORT_SYMBOL(arch_local_irq_disable); |
59 | 59 | ||
60 | |||
61 | notrace unsigned long arch_local_irq_save(void) | 60 | notrace unsigned long arch_local_irq_save(void) |
62 | { | 61 | { |
63 | unsigned long flags; | 62 | unsigned long flags; |
@@ -111,31 +110,4 @@ notrace void arch_local_irq_restore(unsigned long flags) | |||
111 | } | 110 | } |
112 | EXPORT_SYMBOL(arch_local_irq_restore); | 111 | EXPORT_SYMBOL(arch_local_irq_restore); |
113 | 112 | ||
114 | 113 | #endif /* !CONFIG_CPU_MIPSR2 && !CONFIG_CPU_MIPSR6 */ | |
115 | notrace void __arch_local_irq_restore(unsigned long flags) | ||
116 | { | ||
117 | unsigned long __tmp1; | ||
118 | |||
119 | preempt_disable(); | ||
120 | |||
121 | __asm__ __volatile__( | ||
122 | " .set push \n" | ||
123 | " .set noreorder \n" | ||
124 | " .set noat \n" | ||
125 | " mfc0 $1, $12 \n" | ||
126 | " andi %[flags], 1 \n" | ||
127 | " ori $1, 0x1f \n" | ||
128 | " xori $1, 0x1f \n" | ||
129 | " or %[flags], $1 \n" | ||
130 | " mtc0 %[flags], $12 \n" | ||
131 | " " __stringify(__irq_disable_hazard) " \n" | ||
132 | " .set pop \n" | ||
133 | : [flags] "=r" (__tmp1) | ||
134 | : "0" (flags) | ||
135 | : "memory"); | ||
136 | |||
137 | preempt_enable(); | ||
138 | } | ||
139 | EXPORT_SYMBOL(__arch_local_irq_restore); | ||
140 | |||
141 | #endif /* !CONFIG_CPU_MIPSR2 */ | ||