On Wed, 2024-09-04 at 15:50 +0200, Gabriele Monaco wrote:
While building for KUnit with default settings, the build is generating the following compilation warnings.
$ make ARCH=um O=.kunit --jobs=16 ../lib/iomap.c:156:5: warning: no previous prototype for ‘ioread64_lo_hi’ [-Wmissing-prototypes] 156 | u64 ioread64_lo_hi(const void __iomem *addr) | ^~~~~~~~~~~~~~ [...]
The warning happens because the prototypes are defined in `asm-generic/iomap.h` only when `readq` and `writeq` are defined. For UM, those function get some default definitions but are currently defined _after_ the prototypes for `ioread64*`/`iowrite64*` functions. Moving the inclusion of `asm-generic/iomap.h` fixes it.
Signed-off-by: Gabriele Monaco gmonaco@redhat.com
include/asm-generic/io.h | 8 ++++----
I get that you have this on kunit on ARCH=um, but that makes it neither a kunit nor a um patch :)
Arnd had originally wanted to fix this another way, but that got dropped. I don't know if this fix is right, though I can see that it works. I have the same workaround in my tree, but I'm really not convinced that it doesn't have side-effects on other architectures.
johannes