From: Valentin Schneider Date: Thu, 31 Jan 2019 18:23:37 +0000 (+0000) Subject: arm64: entry: Remove unneeded need_resched() loop X-Git-Tag: Ubuntu-5.2.0-15.16~2392^2~42 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=8aa67d18a466f338f79bac99f44e7891f4c71bbb;p=mirror_ubuntu-eoan-kernel.git arm64: 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. Reported-by: Julien Thierry Reported-by: Will Deacon Reviewed-by: Julien Thierry Acked-by: Will Deacon Signed-off-by: Valentin Schneider Cc: Mark Rutland Cc: Marc Zyngier Cc: Julien Grall Cc: Thomas Gleixner Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Catalin Marinas --- diff --git a/arch/arm64/kernel/entry.S b/arch/arm64/kernel/entry.S index 0ec0c46b2c0c..4d0c81f29a60 100644 --- a/arch/arm64/kernel/entry.S +++ b/arch/arm64/kernel/entry.S @@ -611,7 +611,7 @@ el1_irq: #ifdef CONFIG_PREEMPT ldr x24, [tsk, #TSK_TI_PREEMPT] // get preempt count cbnz x24, 1f // preempt count != 0 - bl el1_preempt + bl preempt_schedule_irq // irq en/disable is done inside 1: #endif #ifdef CONFIG_TRACE_IRQFLAGS @@ -620,15 +620,6 @@ el1_irq: kernel_exit 1 ENDPROC(el1_irq) -#ifdef CONFIG_PREEMPT -el1_preempt: - mov x24, lr -1: bl preempt_schedule_irq // irq en/disable is done inside - ldr x0, [tsk, #TSK_TI_FLAGS] // get new tasks TI_FLAGS - tbnz x0, #TIF_NEED_RESCHED, 1b // needs rescheduling? - ret x24 -#endif - /* * EL0 mode handlers. */