Hello, [...] > irq_set_irq_type() is declared in <linux/irq.h>. On arm64, where this > driver is used, <linux/irq.h> is included via this path: > > linux/pci.h > linux/interrupt.h > linux/hardirq.h > arch/arm64/include/asm/hardirq.h > asm-generic/hardirq.h > linux/irq.h > > but on x86, arch/x86/include/asm/hardirq.h does not include > asm-generic/hardirq.h and therefore doesn't include <linux/irq.h>. > > I'm confused about why the robot reported a successful build with > clang-19. It seems like that should have the same problem I saw with > gcc, so I'd like to try it manually. I am not sure how the bot built this, too. I can't seem to successfully built it either locally using LLVM 19, per: drivers/pci/controller/pcie-rockchip-ep.o # CC drivers/pci/controller/pcie-rockchip-ep.o - due to target missing clang-19 -Wp,-MMD,drivers/pci/controller/.pcie-rockchip-ep.o.d -nostdinc -I./arch/x86/include -I./arch/x86/include/generated -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/compiler-version.h -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ --target=x86_64-linux-gnu -fintegrated-as -Werror=unknown-warning-option -Werror=ignored-optimization-argument -Werror=option-ignored -Werror=unused-command-line-argument -fmacro-prefix-map=./= -std=gnu11 -fshort-wchar -funsigned-char -fno-common -fno-PIE -fno-strict-aliasing -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=branch -fno-jump-tables -m64 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mstack-alignment=8 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -Wno-sign-compare -fno-asynchronous-unwind-tables -mretpoline-external-thunk -mindirect-branch-cs-prefix -mfunction-return=thunk-extern -fpatchable-function-entry=16,16 -fno-delete-null-pointer-checks -O2 -fstack-protector-strong -fomit-frame-pointer -ftrivial-auto-var-init=zero -fno-stack-clash-protection -falign-functions=16 -fstrict-flex-arrays=3 -fno-strict-overflow -fno-stack-check -Wall -Wundef -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Werror=strict-prototypes -Wno-format-security -Wno-trigraphs -Wno-frame-address -Wno-address-of-packed-member -Wmissing-declarations -Wmissing-prototypes -Wframe-larger-than=2048 -Wno-gnu -Wvla -Wno-pointer-sign -Wcast-function-type -Wimplicit-fallthrough -Werror=date-time -Werror=incompatible-pointer-types -Wenum-conversion -Wextra -Wunused -Wno-unused-but-set-variable -Wno-unused-const-variable -Wno-format-overflow -Wno-format-overflow-non-kprintf -Wno-format-truncation-non-kprintf -Wno-override-init -Wno-pointer-to-enum-cast -Wno-tautological-constant-out-of-range-compare -Wno-unaligned-access -Wno-enum-compare-conditional -Wno-enum-enum-conversion -Wno-missing-field-initializers -Wno-type-limits -Wno-shift-negative-value -Wno-sign-compare -Wno-unused-parameter -DKBUILD_MODFILE='"drivers/pci/controller/pcie-rockchip-ep"' -DKBUILD_BASENAME='"pcie_rockchip_ep"' -DKBUILD_MODNAME='"pcie_rockchip_ep"' -D__KBUILD_MODNAME=kmod_pcie_rockchip_ep -c -o drivers/pci/controller/pcie-rockchip-ep.o drivers/pci/controller/pcie-rockchip-ep.c drivers/pci/controller/pcie-rockchip-ep.c:640:2: error: call to undeclared function 'irq_set_irq_type'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 640 | irq_set_irq_type(ep->perst_irq, | ^ drivers/pci/controller/pcie-rockchip-ep.c:640:2: note: did you mean 'irq_set_irq_wake'? ./include/linux/interrupt.h:489:12: note: 'irq_set_irq_wake' declared here 489 | extern int irq_set_irq_wake(unsigned int irq, unsigned int on); | ^ drivers/pci/controller/pcie-rockchip-ep.c:672:2: error: call to undeclared function 'irq_set_status_flags'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 672 | irq_set_status_flags(ep->perst_irq, IRQ_NOAUTOEN); | ^ drivers/pci/controller/pcie-rockchip-ep.c:672:38: error: use of undeclared identifier 'IRQ_NOAUTOEN' 672 | irq_set_status_flags(ep->perst_irq, IRQ_NOAUTOEN); | ^ 3 errors generated. make[5]: *** [scripts/Makefile.build:229: drivers/pci/controller/pcie-rockchip-ep.o] Error 1 make[4]: *** [scripts/Makefile.build:478: drivers/pci/controller] Error 2 make[3]: *** [scripts/Makefile.build:478: drivers/pci] Error 2 make[2]: *** [scripts/Makefile.build:478: drivers] Error 2 make[1]: *** [/home/kwilczynski/Development/Pr Of course, adding the missing header fixes the build issue. This is how I also fixed it on the branch itself, for reference. Krzysztof