Messages in this thread | | | From | Guo Ren <> | Date | Fri, 22 Oct 2021 10:26:48 +0800 | Subject | Re: [PATCH 11/15] irq: csky: perform irqentry in entry code |
| |
On Fri, Oct 22, 2021 at 10:19 AM Guo Ren <guoren@kernel.org> wrote: > > On Fri, Oct 22, 2021 at 2:03 AM Mark Rutland <mark.rutland@arm.com> wrote: > > > > In preparation for removing HANDLE_DOMAIN_IRQ_IRQENTRY, have arch/csky > > perform all the irqentry accounting in its entry code. As arch/csky uses > > GENERIC_IRQ_MULTI_HANDLER, we can use generic_handle_arch_irq() to do > > so. > > > > There should be no functional change as a result of this patch. > > > > Signed-off-by: Mark Rutland <mark.rutland@arm.com> > > Cc: Guo Ren <guoren@kernel.org> > > Cc: Marc Zyngier <maz@kernel.org> > > Cc: Thomas Gleixner <tglx@linutronix.de> > > --- > > arch/csky/Kconfig | 1 - > > arch/csky/kernel/entry.S | 2 +- > > arch/csky/kernel/irq.c | 5 ----- > > 3 files changed, 1 insertion(+), 7 deletions(-) > > > > diff --git a/arch/csky/Kconfig b/arch/csky/Kconfig > > index 45f03f674a61..9d4d898df76b 100644 > > --- a/arch/csky/Kconfig > > +++ b/arch/csky/Kconfig > > @@ -18,7 +18,6 @@ config CSKY > > select DMA_DIRECT_REMAP > > select IRQ_DOMAIN > > select HANDLE_DOMAIN_IRQ > > - select HANDLE_DOMAIN_IRQ_IRQENTRY > > select DW_APB_TIMER_OF > > select GENERIC_IOREMAP > > select GENERIC_LIB_ASHLDI3 > > diff --git a/arch/csky/kernel/entry.S b/arch/csky/kernel/entry.S > > index 00e3c8ebf9b8..a4ababf25e24 100644 > > --- a/arch/csky/kernel/entry.S > > +++ b/arch/csky/kernel/entry.S > > @@ -249,7 +249,7 @@ ENTRY(csky_irq) > > > > > > mov a0, sp > > - jbsr csky_do_IRQ > > + jbsr generic_handle_arch_irq > > > > jmpi ret_from_exception > > > > diff --git a/arch/csky/kernel/irq.c b/arch/csky/kernel/irq.c > > index 03a1930f1cbb..fcdaf3156286 100644 > > --- a/arch/csky/kernel/irq.c > > +++ b/arch/csky/kernel/irq.c > > @@ -15,8 +15,3 @@ void __init init_IRQ(void) > > setup_smp_ipi(); > > #endif > > } > > - > > -asmlinkage void __irq_entry csky_do_IRQ(struct pt_regs *regs) > > -{ > > - handle_arch_irq(regs); > > -} > > Seems the previous code has lost old_regs save/restore? > > + struct pt_regs *old_regs; > + > + irq_enter(); > + old_regs = set_irq_regs(regs); > + handle_arch_irq(regs); > + set_irq_regs(old_regs); > + irq_exit();
Sorry, handle_domain_irq has done it, and C-SKY's IPI is in the handle_domain_irq.
Reviewed-by: Guo Ren <guoren@kernel.org>
> > > -- > > 2.11.0 > > > > > -- > Best Regards > Guo Ren > > ML: https://lore.kernel.org/linux-csky/
-- Best Regards Guo Ren
ML: https://lore.kernel.org/linux-csky/
| |