lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 22 Oct 2021 09:59:56 +0800 From: Guo Ren <guoren@...nel.org> To: Mark Rutland <mark.rutland@....com> Cc: Linux Kernel Mailing List <linux-kernel@...r.kernel.org>, Albert Ou <aou@...s.berkeley.edu>, Catalin Marinas <catalin.marinas@....com>, Vincent Chen <deanbo422@...il.com>, Greentime Hu <green.hu@...il.com>, Jonas Bonn <jonas@...thpole.se>, kernelfans@...il.com, Linux ARM <linux-arm-kernel@...ts.infradead.org>, Russell King <linux@...linux.org.uk>, Marc Zyngier <maz@...nel.org>, Nick Hu <nickhu@...estech.com>, Palmer Dabbelt <palmer@...belt.com>, Paul McKenney <paulmck@...nel.org>, Paul Walmsley <paul.walmsley@...ive.com>, Peter Zijlstra <peterz@...radead.org>, Stafford Horne <shorne@...il.com>, Stefan Kristiansson <stefan.kristiansson@...nalahti.fi>, Thomas Gleixner <tglx@...utronix.de>, Linus Torvalds <torvalds@...ux-foundation.org>, Thomas Bogendoerfer <tsbogend@...ha.franken.de>, vgupta@...nel.org, Will Deacon <will@...nel.org> Subject: Re: [PATCH 13/15] irq: riscv: perform irqentry in entry code Reviewed-by: Guo Ren <guoren@...nel.org> On Fri, Oct 22, 2021 at 2:03 AM Mark Rutland <mark.rutland@....com> wrote: > > In preparation for removing HANDLE_DOMAIN_IRQ_IRQENTRY, have arch/riscv > perform all the irqentry accounting in its entry code. As arch/riscv > uses GENERIC_IRQ_MULTI_HANDLER, we can use generic_handle_arch_irq() to > do so. > > Since generic_handle_arch_irq() handles the irq entry and setting the > irq regs, and happens before the irqchip code calls handle_IPI(), we can > remove the redundant irq entry and irq regs manipulation from > handle_IPI(). > > There should be no functional change as a result of this patch. > > Signed-off-by: Mark Rutland <mark.rutland@....com> > Cc: Albert Ou <aou@...s.berkeley.edu> > Cc: Marc Zyngier <maz@...nel.org> > Cc: Palmer Dabbelt <palmer@...belt.com> > Cc: Paul Walmsley <paul.walmsley@...ive.com> > Cc: Thomas Gleixner <tglx@...utronix.de> > --- > arch/riscv/Kconfig | 1 - > arch/riscv/kernel/entry.S | 3 +-- > arch/riscv/kernel/smp.c | 9 +-------- > 3 files changed, 2 insertions(+), 11 deletions(-) > > diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig > index 740653063a56..301a54233c7e 100644 > --- a/arch/riscv/Kconfig > +++ b/arch/riscv/Kconfig > @@ -63,7 +63,6 @@ config RISCV > select GENERIC_SMP_IDLE_THREAD > select GENERIC_TIME_VSYSCALL if MMU && 64BIT > select HANDLE_DOMAIN_IRQ > - select HANDLE_DOMAIN_IRQ_IRQENTRY > select HAVE_ARCH_AUDITSYSCALL > select HAVE_ARCH_JUMP_LABEL if !XIP_KERNEL > select HAVE_ARCH_JUMP_LABEL_RELATIVE if !XIP_KERNEL > diff --git a/arch/riscv/kernel/entry.S b/arch/riscv/kernel/entry.S > index 98f502654edd..64236f7efde5 100644 > --- a/arch/riscv/kernel/entry.S > +++ b/arch/riscv/kernel/entry.S > @@ -130,8 +130,7 @@ skip_context_tracking: > > /* Handle interrupts */ > move a0, sp /* pt_regs */ > - la a1, handle_arch_irq > - REG_L a1, (a1) > + la a1, generic_handle_arch_irq > jr a1 > 1: > /* > diff --git a/arch/riscv/kernel/smp.c b/arch/riscv/kernel/smp.c > index 921d9d7df400..2f6da845c9ae 100644 > --- a/arch/riscv/kernel/smp.c > +++ b/arch/riscv/kernel/smp.c > @@ -140,12 +140,9 @@ void arch_irq_work_raise(void) > > void handle_IPI(struct pt_regs *regs) > { > - struct pt_regs *old_regs = set_irq_regs(regs); > unsigned long *pending_ipis = &ipi_data[smp_processor_id()].bits; > unsigned long *stats = ipi_data[smp_processor_id()].stats; > > - irq_enter(); > - > riscv_clear_ipi(); > > while (true) { > @@ -156,7 +153,7 @@ void handle_IPI(struct pt_regs *regs) > > ops = xchg(pending_ipis, 0); > if (ops == 0) > - goto done; > + return; > > if (ops & (1 << IPI_RESCHEDULE)) { > stats[IPI_RESCHEDULE]++; > @@ -189,10 +186,6 @@ void handle_IPI(struct pt_regs *regs) > /* Order data access and bit testing. */ > mb(); > } > - > -done: > - irq_exit(); > - set_irq_regs(old_regs); > } > > static const char * const ipi_names[] = { > -- > 2.11.0 > -- Best Regards Guo Ren ML: https://lore.kernel.org/linux-csky/
Powered by blists - more mailing lists