Message ID | 20240727073648.1042377-1-ruanjinjie@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | irqchip/gic-v3: Remove asmlinkage for gic_handle_irq() | expand |
On Sat, Jul 27 2024 at 15:36, Jinjie Ruan wrote: > Since commit 064dbfb41691 ("arm64: entry: convert IRQ+FIQ handlers to C"), > the gic_handle_irq() is only called by C functions, so remove > the asmlinkage. > > Fixes: 064dbfb41691 ("arm64: entry: convert IRQ+FIQ handlers to C") > Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com> Right. Can we please fix all of that and be done with it? # git grep -l asmlinkage drivers/irqchip/ | xargs grep set_handle_irq should find the remaining leftovers of asmlinkage. Thanks, tglx
On Sat, 27 Jul 2024 08:36:48 +0100, Jinjie Ruan <ruanjinjie@huawei.com> wrote: > > Since commit 064dbfb41691 ("arm64: entry: convert IRQ+FIQ handlers to C"), > the gic_handle_irq() is only called by C functions, so remove > the asmlinkage. You clearly haven't looked very far. > > Fixes: 064dbfb41691 ("arm64: entry: convert IRQ+FIQ handlers to C") > Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com> > --- > drivers/irqchip/irq-gic-v3.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c > index c19083bfb943..0efa3443c323 100644 > --- a/drivers/irqchip/irq-gic-v3.c > +++ b/drivers/irqchip/irq-gic-v3.c > @@ -930,7 +930,7 @@ static void __gic_handle_irq_from_irqsoff(struct pt_regs *regs) > __gic_handle_nmi(irqnr, regs); > } > > -static asmlinkage void __exception_irq_entry gic_handle_irq(struct pt_regs *regs) > +static void __exception_irq_entry gic_handle_irq(struct pt_regs *regs) > { > if (unlikely(gic_supports_nmi() && !interrupts_enabled(regs))) > __gic_handle_irq_from_irqsoff(regs); $ git grep handle_arch_irq arch/arm/ arch/arm/kernel/entry-armv.S: bl generic_handle_arch_irq arch/arm/kernel/entry-armv.S: mov_l r0, generic_handle_arch_irq Until someone rewrites 32bit ARM to have all of its low-level interrupt handling in C, this stays. This has no effect on arm64 anyway. M.
On Sat, 27 Jul 2024 10:35:45 +0100, Marc Zyngier <maz@kernel.org> wrote: > > On Sat, 27 Jul 2024 08:36:48 +0100, > Jinjie Ruan <ruanjinjie@huawei.com> wrote: > > > > Since commit 064dbfb41691 ("arm64: entry: convert IRQ+FIQ handlers to C"), > > the gic_handle_irq() is only called by C functions, so remove > > the asmlinkage. > > You clearly haven't looked very far. > > > > > Fixes: 064dbfb41691 ("arm64: entry: convert IRQ+FIQ handlers to C") > > Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com> > > --- > > drivers/irqchip/irq-gic-v3.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c > > index c19083bfb943..0efa3443c323 100644 > > --- a/drivers/irqchip/irq-gic-v3.c > > +++ b/drivers/irqchip/irq-gic-v3.c > > @@ -930,7 +930,7 @@ static void __gic_handle_irq_from_irqsoff(struct pt_regs *regs) > > __gic_handle_nmi(irqnr, regs); > > } > > > > -static asmlinkage void __exception_irq_entry gic_handle_irq(struct pt_regs *regs) > > +static void __exception_irq_entry gic_handle_irq(struct pt_regs *regs) > > { > > if (unlikely(gic_supports_nmi() && !interrupts_enabled(regs))) > > __gic_handle_irq_from_irqsoff(regs); > > $ git grep handle_arch_irq arch/arm/ > arch/arm/kernel/entry-armv.S: bl generic_handle_arch_irq > arch/arm/kernel/entry-armv.S: mov_l r0, generic_handle_arch_irq > > Until someone rewrites 32bit ARM to have all of its low-level > interrupt handling in C, this stays. This has no effect on arm64 > anyway. Scratch that, I misread it. We have an indirection, so this patch is fine. Apologies for the noise. M.
On 2024/7/27 17:25, Thomas Gleixner wrote: > On Sat, Jul 27 2024 at 15:36, Jinjie Ruan wrote: >> Since commit 064dbfb41691 ("arm64: entry: convert IRQ+FIQ handlers to C"), >> the gic_handle_irq() is only called by C functions, so remove >> the asmlinkage. >> >> Fixes: 064dbfb41691 ("arm64: entry: convert IRQ+FIQ handlers to C") >> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com> > > Right. Can we please fix all of that and be done with it? > > # git grep -l asmlinkage drivers/irqchip/ | xargs grep set_handle_irq > > should find the remaining leftovers of asmlinkage. You are right,handle_arch_irq() are all only called in C now, we can all remove the asmlinkage. > > Thanks, > > tglx
diff --git a/drivers/irqchip/irq-gic-v3.c b/drivers/irqchip/irq-gic-v3.c index c19083bfb943..0efa3443c323 100644 --- a/drivers/irqchip/irq-gic-v3.c +++ b/drivers/irqchip/irq-gic-v3.c @@ -930,7 +930,7 @@ static void __gic_handle_irq_from_irqsoff(struct pt_regs *regs) __gic_handle_nmi(irqnr, regs); } -static asmlinkage void __exception_irq_entry gic_handle_irq(struct pt_regs *regs) +static void __exception_irq_entry gic_handle_irq(struct pt_regs *regs) { if (unlikely(gic_supports_nmi() && !interrupts_enabled(regs))) __gic_handle_irq_from_irqsoff(regs);
Since commit 064dbfb41691 ("arm64: entry: convert IRQ+FIQ handlers to C"), the gic_handle_irq() is only called by C functions, so remove the asmlinkage. Fixes: 064dbfb41691 ("arm64: entry: convert IRQ+FIQ handlers to C") Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com> --- drivers/irqchip/irq-gic-v3.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)