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 |
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?
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 --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:
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(-)