On Tue, Oct 08, 2024 at 09:27:20AM +0000, Arnd Bergmann wrote:
#endif /* CONFIG_TRACE_MMIO_ACCESS */
+extern void memcpy_fromio(void *to, const volatile void __iomem *from,
+ size_t count);
+extern void memcpy_toio(volatile void __iomem *to, const void *from,
+ size_t count);
+extern void memset_io(volatile void __iomem *dst, int c, size_t count);
+
I think having this globally visible is the reason you are running
into the mismatched prototypes.
Yes, especially as architectures sometimes actually implement this
as macro or inline function.
Please also drop the pointless externs while you're at it.