Messages in this thread | | | Subject | Re: [RFC PATCH 2/3] ARM: entry: Remove unneeded need_resched() loop | From | Julien Thierry <> | Date | Fri, 1 Feb 2019 08:49:37 +0000 |
| |
Hi Valentin,
On 31/01/2019 18:23, Valentin Schneider wrote: > 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
Reviewed-by: Julien Thierry <julien.thierry@arm.com>
Cheers,
> --- > 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 >
-- Julien Thierry
| |