drivers/irqchip/irq-dw-apb-ictl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
__irq_entry belongs nowhere in irqchip drivers as it is an
architecture specific annotation. There's no specific architecture
depends for DW_APB_ICTL and there probably shouldn't be.
Fixes:
drivers/irqchip/irq-dw-apb-ictl.c:33:13: error: variable has incomplete type 'void'
33 | static void __irq_entry dw_apb_ictl_handle_irq(struct pt_regs *regs)
| ^
./arch/x86/include/asm/irq.h:19:21: note: expanded from macro '__irq_entry'
19 | #define __irq_entry __invalid_section
| ^
drivers/irqchip/irq-dw-apb-ictl.c:33:24: error: expected ';' after top level declarator
33 | static void __irq_entry dw_apb_ictl_handle_irq(struct pt_regs *regs)
| ^
| ;
CC drivers/bus/fsl-mc/dpcon.o
drivers/irqchip/irq-dw-apb-ictl.c:205:18: error: use of undeclared identifier 'dw_apb_ictl_handle_irq'
205 | set_handle_irq(dw_apb_ictl_handle_irq);
| ^~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
drivers/irqchip/irq-dw-apb-ictl.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/irqchip/irq-dw-apb-ictl.c b/drivers/irqchip/irq-dw-apb-ictl.c
index 4240a0dbf627..2cf82bdd720f 100644
--- a/drivers/irqchip/irq-dw-apb-ictl.c
+++ b/drivers/irqchip/irq-dw-apb-ictl.c
@@ -30,7 +30,7 @@
/* irq domain of the primary interrupt controller. */
static struct irq_domain *dw_apb_ictl_irq_domain;
-static void __irq_entry dw_apb_ictl_handle_irq(struct pt_regs *regs)
+static void dw_apb_ictl_handle_irq(struct pt_regs *regs)
{
struct irq_domain *d = dw_apb_ictl_irq_domain;
int n;
--
2.54.0
On Mon, May 18 2026 at 19:57, Rosen Penev wrote:
> __irq_entry belongs nowhere in irqchip drivers as it is an
> architecture specific annotation. There's no specific architecture
> depends for DW_APB_ICTL and there probably shouldn't be.
Care to see how that driver is selected? Certainly not by x86.
> Fixes:
>
> drivers/irqchip/irq-dw-apb-ictl.c:33:13: error: variable has incomplete type 'void'
> 33 | static void __irq_entry dw_apb_ictl_handle_irq(struct pt_regs *regs)
That's fixing nothing because the driver cannot be built on x86 and the
architectures which select it have a reason to move the handler into the
irqentry.text section via __irq_entry.
I'm slowly getting fed up by the AI slob which ends up in my inbox every
other day.
Thanks,
tglx
On Tue, May 19, 2026 at 10:16 AM Thomas Gleixner <tglx@kernel.org> wrote: > > On Mon, May 18 2026 at 19:57, Rosen Penev wrote: > > __irq_entry belongs nowhere in irqchip drivers as it is an > > architecture specific annotation. There's no specific architecture > > depends for DW_APB_ICTL and there probably shouldn't be. > > Care to see how that driver is selected? Certainly not by x86. make LLVM=1 ARCH=i386 allmodconfig make LLVM=1 ARCH=i386 -j 31 > > > Fixes: > > > > drivers/irqchip/irq-dw-apb-ictl.c:33:13: error: variable has incomplete type 'void' > > 33 | static void __irq_entry dw_apb_ictl_handle_irq(struct pt_regs *regs) > > That's fixing nothing because the driver cannot be built on x86 and the > architectures which select it have a reason to move the handler into the > irqentry.text section via __irq_entry. > > I'm slowly getting fed up by the AI slob which ends up in my inbox every > other day. This was not detected by AI. Note the lack of an assisted-by tag. > > Thanks, > > tglx > > >
On Tue, May 19 2026 at 14:22, Rosen Penev wrote:
> On Tue, May 19, 2026 at 10:16 AM Thomas Gleixner <tglx@kernel.org> wrote:
>>
>> On Mon, May 18 2026 at 19:57, Rosen Penev wrote:
>> > __irq_entry belongs nowhere in irqchip drivers as it is an
>> > architecture specific annotation. There's no specific architecture
>> > depends for DW_APB_ICTL and there probably shouldn't be.
>>
>> Care to see how that driver is selected? Certainly not by x86.
> make LLVM=1 ARCH=i386 allmodconfig
> make LLVM=1 ARCH=i386 -j 31
How does that select the config symbol?
Makefile:
obj-$(CONFIG_DW_APB_ICTL) += irq-dw-apb-ictl.o
Kconfig:
config DW_APB_ICTL
bool
select GENERIC_IRQ_CHIP
select IRQ_DOMAIN_HIERARCHY
# git grep DW_APB_ICTL
arch/arc/plat-axs10x/Kconfig: select DW_APB_ICTL
arch/arm/mach-berlin/Kconfig: select DW_APB_ICTL
arch/arm/mach-hisi/Kconfig: select DW_APB_ICTL
arch/arm64/Kconfig.platforms: select DW_APB_ICTL
arch/csky/Kconfig.platforms: select DW_APB_ICTL
i386 definitely does not select it.
# grep DW_APB_ICTL ../build-386/.config
#
© 2016 - 2026 Red Hat, Inc.