nds32: ex-exit: Remove unneeded need_resched() loop
authorValentin Schneider <valentin.schneider@arm.com>
Mon, 11 Mar 2019 22:47:45 +0000 (22:47 +0000)
committerGreentime Hu <greentime@andestech.com>
Tue, 7 May 2019 09:52:09 +0000 (17:52 +0800)
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.

Signed-off-by: Valentin Schneider <valentin.schneider@arm.com>
Cc: Greentime Hu <green.hu@gmail.com>
Cc: Vincent Chen <deanbo422@gmail.com>
Acked-by: Greentime Hu <greentime@andestech.com>
Signed-off-by: Greentime Hu <greentime@andestech.com>
arch/nds32/kernel/ex-exit.S

index 97ba15cd4180b09bc59aeb7fcdbe2eede8c766dd..1df02a79336417fb7eef1ca34d199f378b514659 100644 (file)
@@ -163,7 +163,7 @@ resume_kernel:
        gie_disable
        lwi     $t0, [tsk+#TSK_TI_PREEMPT]
        bnez    $t0, no_work_pending
-need_resched:
+
        lwi     $t0, [tsk+#TSK_TI_FLAGS]
        andi    $p1, $t0, #_TIF_NEED_RESCHED
        beqz    $p1, no_work_pending
@@ -173,7 +173,7 @@ need_resched:
        beqz    $t0, no_work_pending
 
        jal     preempt_schedule_irq
-       b       need_resched
+       b       no_work_pending
 #endif
 
 /*