Re: [PATCH] iomap: Fix -Wmissing-prototypes on UM
From: Arnd Bergmann
Date: Mon Feb 03 2025 - 03:21:26 EST
On Mon, Feb 3, 2025, at 08:26, Thomas Weißschuh wrote:
> Building lib/iomap.o on UM triggers warnings about missing prototypes.
> These prototypes should be defined by asm-generic/iomap.h, depending on
> other symbols. For example "ioread64_lo_hi" is based on "readq".
> However the generic variants of those tested symbols are defined in
> asm-generic/io.h, only after asm-generic/iomap.h has already been
> included, breaking the ifdef logic.
Sorry I never took the time to fix this so far.
> --- a/include/asm-generic/io.h
> +++ b/include/asm-generic/io.h
> @@ -13,10 +13,6 @@
> #include <linux/types.h>
> #include <linux/instruction_pointer.h>
>
> -#ifdef CONFIG_GENERIC_IOMAP
> -#include <asm-generic/iomap.h>
> -#endif
> -
> #include <asm/mmiowb.h>
> #include <asm-generic/pci_iomap.h>
>
> @@ -1250,4 +1246,8 @@ extern int devmem_is_allowed(unsigned long pfn);
>
> #endif /* __KERNEL__ */
>
> +#ifdef CONFIG_GENERIC_IOMAP
> +#include <asm-generic/iomap.h>
> +#endif
> +
> #endif /* __ASM_GENERIC_IO_H */
I have not tried it yet, but I suspect this is not the correct
fix here. Unfortunately the indirect header inclusions in this
file are way too complicated with corner cases in various
architectures. How much testing have you given your patch
across other targets? I think the last time we tried to address
it, we broke mips or parisc.
Arnd