diff options
Diffstat (limited to 'arch/mips/kernel/entry.S')
-rw-r--r-- | arch/mips/kernel/entry.S | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/arch/mips/kernel/entry.S b/arch/mips/kernel/entry.S index be0354a14e26..ebc1a5d4f8b8 100644 --- a/arch/mips/kernel/entry.S +++ b/arch/mips/kernel/entry.S | |||
@@ -48,6 +48,7 @@ resume_userspace: | |||
48 | 48 | ||
49 | #ifdef CONFIG_PREEMPT | 49 | #ifdef CONFIG_PREEMPT |
50 | resume_kernel: | 50 | resume_kernel: |
51 | local_irq_disable | ||
51 | lw t0, TI_PRE_COUNT($28) | 52 | lw t0, TI_PRE_COUNT($28) |
52 | bnez t0, restore_all | 53 | bnez t0, restore_all |
53 | need_resched: | 54 | need_resched: |
@@ -59,11 +60,7 @@ need_resched: | |||
59 | beqz t0, restore_all | 60 | beqz t0, restore_all |
60 | li t0, PREEMPT_ACTIVE | 61 | li t0, PREEMPT_ACTIVE |
61 | sw t0, TI_PRE_COUNT($28) | 62 | sw t0, TI_PRE_COUNT($28) |
62 | local_irq_enable | 63 | jal preempt_schedule_irq |
63 | jal schedule | ||
64 | sw zero, TI_PRE_COUNT($28) | ||
65 | local_irq_disable | ||
66 | b need_resched | ||
67 | #endif | 64 | #endif |
68 | 65 | ||
69 | FEXPORT(ret_from_fork) | 66 | FEXPORT(ret_from_fork) |