[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <fa090a80-5579-5dac-da19-56c9a6c5c423@arm.com>
Date: Fri, 1 Feb 2019 08:49:37 +0000
From: Julien Thierry <julien.thierry@....com>
To: Valentin Schneider <valentin.schneider@....com>,
linux-kernel@...r.kernel.org
Cc: Russell King <linux@...linux.org.uk>,
Thomas Gleixner <tglx@...utronix.de>,
Will Deacon <will.deacon@....com>,
linux-arm-kernel@...ts.infradead.org
Subject: Re: [RFC PATCH 2/3] ARM: entry: Remove unneeded need_resched() loop
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@....com>
> Cc: Russell King <linux@...linux.org.uk>
> Cc: Thomas Gleixner <tglx@...utronix.de>
> Cc: Will Deacon <will.deacon@....com>
> Cc: Julien Thierry <julien.thierry@....com>
> Cc: linux-arm-kernel@...ts.infradead.org
Reviewed-by: Julien Thierry <julien.thierry@....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
Powered by blists - more mailing lists