Messages in this thread Patch in this message | | | From | Valentin Schneider <> | Subject | [RFC PATCH 2/3] ARM: entry: Remove unneeded need_resched() loop | Date | Thu, 31 Jan 2019 18:23:38 +0000 |
| |
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: Russell King <linux@armlinux.org.uk> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Will Deacon <will.deacon@arm.com> Cc: Julien Thierry <julien.thierry@arm.com> Cc: linux-arm-kernel@lists.infradead.org --- arch/arm/kernel/entry-armv.S | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-)
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S index e85a3af9ddeb..a7ac22e09bb2 100644 --- a/arch/arm/kernel/entry-armv.S +++ b/arch/arm/kernel/entry-armv.S @@ -220,7 +220,7 @@ __irq_svc: teq r8, #0 @ if preempt count != 0 movne r0, #0 @ force flags to 0 tst r0, #_TIF_NEED_RESCHED - blne svc_preempt + blne preempt_schedule_irq @ irq en/disable is done inside #endif svc_exit r5, irq = 1 @ return from exception @@ -229,16 +229,6 @@ ENDPROC(__irq_svc) .ltorg -#ifdef CONFIG_PREEMPT -svc_preempt: - mov r8, lr -1: bl preempt_schedule_irq @ irq en/disable is done inside - ldr r0, [tsk, #TI_FLAGS] @ get new tasks TI_FLAGS - tst r0, #_TIF_NEED_RESCHED - reteq r8 @ go again - b 1b -#endif - __und_fault: @ Correct the PC such that it is pointing at the instruction @ which caused the fault. If the faulting instruction was ARM -- 2.20.1
| |