aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValentin Schneider <[email protected]>2019-03-15 16:31:33 +0000
committerPaul Burton <[email protected]>2019-03-19 15:25:45 -0700
commitb8f3b15a7ba0a91de86547de8bbd5a633db03ab1 (patch)
treec5b988262d0ae06bedd2045ccd772737493a3b30
parent9e98c678c2d6ae3a17cb2de55d17f69dddaa231b (diff)
MIPS: entry: Remove unneeded need_resched() loop
Since the enabling and disabling of IRQs within preempt_schedule_irq() is contained in a need_resched() loop, we don't need the outer arch code loop. Note that commit a18815abcdfd ("Use preempt_schedule_irq.") initially removed the existing loop, but missed the final branch to restore_all. Commit cdaed73afb61 ("Fix preemption bug.") missed that and reintroduced the loop. Signed-off-by: Valentin Schneider <[email protected]> Cc: Ralf Baechle <[email protected]> Cc: Paul Burton <[email protected]> Cc: James Hogan <[email protected]> Cc: [email protected] Signed-off-by: Paul Burton <[email protected]> Cc: [email protected]
-rw-r--r--arch/mips/kernel/entry.S5
1 files changed, 2 insertions, 3 deletions
diff --git a/arch/mips/kernel/entry.S b/arch/mips/kernel/entry.S
index d7de8adcfcc8..5469d43b6966 100644
--- a/arch/mips/kernel/entry.S
+++ b/arch/mips/kernel/entry.S
@@ -58,15 +58,14 @@ resume_kernel:
local_irq_disable
lw t0, TI_PRE_COUNT($28)
bnez t0, restore_all
-need_resched:
LONG_L t0, TI_FLAGS($28)
andi t1, t0, _TIF_NEED_RESCHED
beqz t1, restore_all
LONG_L t0, PT_STATUS(sp) # Interrupts off?
andi t0, 1
beqz t0, restore_all
- jal preempt_schedule_irq
- b need_resched
+ PTR_LA ra, restore_all
+ j preempt_schedule_irq
#endif
FEXPORT(ret_from_kernel_thread)