diff options
Diffstat (limited to 'arch/mips/kernel/cpu-probe.c')
| -rw-r--r-- | arch/mips/kernel/cpu-probe.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c index 11c92dc53791..e621fda8ab37 100644 --- a/arch/mips/kernel/cpu-probe.c +++ b/arch/mips/kernel/cpu-probe.c | |||
| @@ -54,14 +54,18 @@ extern void r4k_wait(void); | |||
| 54 | * interrupt is requested" restriction in the MIPS32/MIPS64 architecture makes | 54 | * interrupt is requested" restriction in the MIPS32/MIPS64 architecture makes |
| 55 | * using this version a gamble. | 55 | * using this version a gamble. |
| 56 | */ | 56 | */ |
| 57 | static void r4k_wait_irqoff(void) | 57 | void r4k_wait_irqoff(void) |
| 58 | { | 58 | { |
| 59 | local_irq_disable(); | 59 | local_irq_disable(); |
| 60 | if (!need_resched()) | 60 | if (!need_resched()) |
| 61 | __asm__(" .set mips3 \n" | 61 | __asm__(" .set push \n" |
| 62 | " .set mips3 \n" | ||
| 62 | " wait \n" | 63 | " wait \n" |
| 63 | " .set mips0 \n"); | 64 | " .set pop \n"); |
| 64 | local_irq_enable(); | 65 | local_irq_enable(); |
| 66 | __asm__(" .globl __pastwait \n" | ||
| 67 | "__pastwait: \n"); | ||
| 68 | return; | ||
| 65 | } | 69 | } |
| 66 | 70 | ||
| 67 | /* | 71 | /* |
