diff mbox series

[RESEND,5/7] RISC-V: entry: Remove unneeded need_resched() loop

Message ID 20190528104848.13160-6-valentin.schneider@arm.com (mailing list archive)
State New, archived
Headers show
Series entry: preempt_schedule_irq() callers scrub | expand

Commit Message

Valentin Schneider May 28, 2019, 10:48 a.m. UTC
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: Palmer Dabbelt <palmer@sifive.com>
Cc: Albert Ou <aou@eecs.berkeley.edu>
Cc: linux-riscv@lists.infradead.org
---
 arch/riscv/kernel/entry.S | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Palmer Dabbelt May 30, 2019, 4:09 a.m. UTC | #1
On Tue, 28 May 2019 03:48:46 PDT (-0700), valentin.schneider@arm.com 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: Palmer Dabbelt <palmer@sifive.com>
> Cc: Albert Ou <aou@eecs.berkeley.edu>
> Cc: linux-riscv@lists.infradead.org
> ---
>  arch/riscv/kernel/entry.S | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/arch/riscv/kernel/entry.S b/arch/riscv/kernel/entry.S
> index 1c1ecc238cfa..d0b1b9660283 100644
> --- a/arch/riscv/kernel/entry.S
> +++ b/arch/riscv/kernel/entry.S
> @@ -258,12 +258,11 @@ restore_all:
>  resume_kernel:
>  	REG_L s0, TASK_TI_PREEMPT_COUNT(tp)
>  	bnez s0, restore_all
> -need_resched:
>  	REG_L s0, TASK_TI_FLAGS(tp)
>  	andi s0, s0, _TIF_NEED_RESCHED
>  	beqz s0, restore_all
>  	call preempt_schedule_irq
> -	j need_resched
> +	j restore_all
>  #endif
>
>  work_pending:

Sorry I missed this the first time around.

Reviewed-by: Palmer Dabbelt <palmer@sifive.com>

Do you want this through the RISC-V tree, or are you going to take it?
Valentin Schneider May 30, 2019, 4:37 p.m. UTC | #2
On 30/05/2019 05:09, Palmer Dabbelt wrote:
[...]
> 
> Sorry I missed this the first time around.
> 
> Reviewed-by: Palmer Dabbelt <palmer@sifive.com>
> 
> Do you want this through the RISC-V tree, or are you going to take it?

Thanks! It's a standalone change so this would be fine through your tree.
diff mbox series

Patch

diff --git a/arch/riscv/kernel/entry.S b/arch/riscv/kernel/entry.S
index 1c1ecc238cfa..d0b1b9660283 100644
--- a/arch/riscv/kernel/entry.S
+++ b/arch/riscv/kernel/entry.S
@@ -258,12 +258,11 @@  restore_all:
 resume_kernel:
 	REG_L s0, TASK_TI_PREEMPT_COUNT(tp)
 	bnez s0, restore_all
-need_resched:
 	REG_L s0, TASK_TI_FLAGS(tp)
 	andi s0, s0, _TIF_NEED_RESCHED
 	beqz s0, restore_all
 	call preempt_schedule_irq
-	j need_resched
+	j restore_all
 #endif
 
 work_pending: