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