Message ID | 168477156440.3873520.6153672647621739139.stgit@djiang5-mobl3 (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | acpi: Fix header declaration of acpi_arch_dma_setup() w/o CONFIG_ACPI | expand |
Hi Dave, Sorry for the late reply, I have some comments inline. On 2023/5/23 0:06, Dave Jiang wrote: > arm64 build can be done without CONFIG_ACPI. The ifdef bits for > acpi_arch_dma_setup() is placed inside CONFIG_ACPI. When CONFIG_ACPI is > not set, this causes warning reported by kernel test bot. Move the > prototype declaration for acpi_arch_dma_setup() outside of CONFIG_ACPI. ... > >>> drivers/acpi/arm64/dma.c:7:6: warning: no previous prototype for function 'acpi_arch_dma_setup' [-Wmissing-prototypes] > void acpi_arch_dma_setup(struct device *dev) > ^ > drivers/acpi/arm64/dma.c:7:1: note: declare 'static' if the function is not intended to be used outside of this translation unit > void acpi_arch_dma_setup(struct device *dev) > ^ > static > 1 warning generated. drivers/acpi can only be compiled with CONFIG_ACPI=y, so drivers/acpi/arm64/ will be the same, not sure how to trigger this compile warning. I disable CONFIG_ACPI on my ARM64 machine, but didn't get the warning you reported. > > Reported-by: kernel test robot <lkp@intel.com> > Closes: https://lore.kernel.org/oe-kbuild-all/202305200933.afKCLlxS-lkp@intel.com/ How to generate the kernel config file as you kindly attached in the link? Thanks Hanjun
On 2023-06-01 02:48, Hanjun Guo wrote: > Hi Dave, > > Sorry for the late reply, I have some comments inline. > > On 2023/5/23 0:06, Dave Jiang wrote: >> arm64 build can be done without CONFIG_ACPI. The ifdef bits for >> acpi_arch_dma_setup() is placed inside CONFIG_ACPI. When CONFIG_ACPI is >> not set, this causes warning reported by kernel test bot. Move the >> prototype declaration for acpi_arch_dma_setup() outside of CONFIG_ACPI. > > ... > >> >>>> drivers/acpi/arm64/dma.c:7:6: warning: no previous prototype for >>>> function 'acpi_arch_dma_setup' [-Wmissing-prototypes] >> void acpi_arch_dma_setup(struct device *dev) >> ^ >> drivers/acpi/arm64/dma.c:7:1: note: declare 'static' if the >> function is not intended to be used outside of this translation unit >> void acpi_arch_dma_setup(struct device *dev) >> ^ >> static >> 1 warning generated. > > drivers/acpi can only be compiled with CONFIG_ACPI=y, so > drivers/acpi/arm64/ will be the same, not sure how to trigger > this compile warning. > > I disable CONFIG_ACPI on my ARM64 machine, but didn't get the > warning you reported. Looking at the linked LKP report, it seems it's it's explicitly trying to build drivers/acpi/arm64/ despite the config: mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm64 olddefconfig COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm64 SHELL=/bin/bash drivers/acpi/arm64/ So I guess it's a problem with the LKP setup? In general, trying to build arbitrary parts of the kernel which are configured out can never be expected to work. Thanks, Robin.
On 6/1/23 03:31, Robin Murphy wrote: > On 2023-06-01 02:48, Hanjun Guo wrote: >> Hi Dave, >> >> Sorry for the late reply, I have some comments inline. >> >> On 2023/5/23 0:06, Dave Jiang wrote: >>> arm64 build can be done without CONFIG_ACPI. The ifdef bits for >>> acpi_arch_dma_setup() is placed inside CONFIG_ACPI. When CONFIG_ACPI is >>> not set, this causes warning reported by kernel test bot. Move the >>> prototype declaration for acpi_arch_dma_setup() outside of CONFIG_ACPI. >> >> ... >> >>> >>>>> drivers/acpi/arm64/dma.c:7:6: warning: no previous prototype for >>>>> function 'acpi_arch_dma_setup' [-Wmissing-prototypes] >>> void acpi_arch_dma_setup(struct device *dev) >>> ^ >>> drivers/acpi/arm64/dma.c:7:1: note: declare 'static' if the >>> function is not intended to be used outside of this translation unit >>> void acpi_arch_dma_setup(struct device *dev) >>> ^ >>> static >>> 1 warning generated. >> >> drivers/acpi can only be compiled with CONFIG_ACPI=y, so >> drivers/acpi/arm64/ will be the same, not sure how to trigger >> this compile warning. >> >> I disable CONFIG_ACPI on my ARM64 machine, but didn't get the >> warning you reported. > > Looking at the linked LKP report, it seems it's it's explicitly trying > to build drivers/acpi/arm64/ despite the config: > > mkdir build_dir && cp config build_dir/.config > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 > O=build_dir ARCH=arm64 olddefconfig > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 > O=build_dir ARCH=arm64 SHELL=/bin/bash drivers/acpi/arm64/ > > So I guess it's a problem with the LKP setup? In general, trying to > build arbitrary parts of the kernel which are configured out can never > be expected to work. It seems to be a problem triggered because I was working on some patches that added obj-y at the drivers/Makefile for acpi/ and opened the ACPI dir for !CONFIG_ACPI compile. The code has been reworked after comments from Rafael. So this is no longer a problem. Please ignore patch. Sorry about the noise. > > Thanks, > Robin.
diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 7b71dd74baeb..a0a8492d8a60 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h @@ -281,12 +281,6 @@ acpi_numa_processor_affinity_init(struct acpi_srat_cpu_affinity *pa) { } void acpi_numa_x2apic_affinity_init(struct acpi_srat_x2apic_cpu_affinity *pa); -#if defined(CONFIG_ARM64) || defined(CONFIG_LOONGARCH) -void acpi_arch_dma_setup(struct device *dev); -#else -static inline void acpi_arch_dma_setup(struct device *dev) { } -#endif - #ifdef CONFIG_ARM64 void acpi_numa_gicc_affinity_init(struct acpi_srat_gicc_affinity *pa); #else @@ -1084,6 +1078,12 @@ static inline bool acpi_sleep_state_supported(u8 sleep_state) #endif /* !CONFIG_ACPI */ +#if defined(CONFIG_ARM64) || defined(CONFIG_LOONGARCH) +void acpi_arch_dma_setup(struct device *dev); +#else +static inline void acpi_arch_dma_setup(struct device *dev) { } +#endif + #ifdef CONFIG_ACPI_HOTPLUG_IOAPIC int acpi_ioapic_add(acpi_handle root); #else