Hi Julian, kernel test robot noticed the following build errors: [auto build test ERROR on powerpc/next] [also build test ERROR on powerpc/fixes arm64/for-next/core deller-parisc/for-next s390/features mtd/mtd/next mtd/mtd/fixes linus/master arm/for-next arm/fixes v6.12-rc2 next-20241008] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Julian-Vetter/Consolidate-IO-memcpy-memset-into-iomap_copy-c/20241008-163134 base: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git next patch link: https://lore.kernel.org/r/20241008075023.3052370-2-jvetter%40kalrayinc.com patch subject: [PATCH v8 01/14] Consolidate IO memcpy/memset into iomap_copy.c config: sparc-allnoconfig (https://download.01.org/0day-ci/archive/20241009/202410091032.Q4NgrjoB-lkp@xxxxxxxxx/config) compiler: sparc-linux-gcc (GCC) 14.1.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241009/202410091032.Q4NgrjoB-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202410091032.Q4NgrjoB-lkp@xxxxxxxxx/ All errors (new ones prefixed by >>): In file included from arch/sparc/include/asm/io.h:7, from include/linux/io.h:14, from include/linux/irq.h:20, from include/asm-generic/hardirq.h:17, from arch/sparc/include/asm/hardirq_32.h:11, from arch/sparc/include/asm/hardirq.h:7, from include/linux/hardirq.h:11, from include/linux/highmem.h:12, from include/linux/pagemap.h:11, from lib/buildid.c:7: >> arch/sparc/include/asm/io_32.h:23:20: error: static declaration of '_memset_io' follows non-static declaration 23 | static inline void _memset_io(volatile void __iomem *dst, | ^~~~~~~~~~ arch/sparc/include/asm/io_32.h:10:31: note: previous declaration of '_memset_io' with type 'void(volatile void *, int, size_t)' {aka 'void(volatile void *, int, unsigned int)'} 10 | #define memset_io(d,c,sz) _memset_io(d,c,sz) | ^~~~~~~~~~ include/asm-generic/io.h:109:13: note: in expansion of macro 'memset_io' 109 | extern void memset_io(volatile void __iomem *dst, int c, size_t count); | ^~~~~~~~~ >> arch/sparc/include/asm/io_32.h:34:20: error: static declaration of '_memcpy_fromio' follows non-static declaration 34 | static inline void _memcpy_fromio(void *dst, const volatile void __iomem *src, | ^~~~~~~~~~~~~~ arch/sparc/include/asm/io_32.h:11:31: note: previous declaration of '_memcpy_fromio' with type 'void(void *, const volatile void *, size_t)' {aka 'void(void *, const volatile void *, unsigned int)'} 11 | #define memcpy_fromio(d,s,sz) _memcpy_fromio(d,s,sz) | ^~~~~~~~~~~~~~ include/asm-generic/io.h:105:13: note: in expansion of macro 'memcpy_fromio' 105 | extern void memcpy_fromio(void *to, const volatile void __iomem *from, | ^~~~~~~~~~~~~ >> arch/sparc/include/asm/io_32.h:46:20: error: static declaration of '_memcpy_toio' follows non-static declaration 46 | static inline void _memcpy_toio(volatile void __iomem *dst, const void *src, | ^~~~~~~~~~~~ arch/sparc/include/asm/io_32.h:12:31: note: previous declaration of '_memcpy_toio' with type 'void(volatile void *, const void *, size_t)' {aka 'void(volatile void *, const void *, unsigned int)'} 12 | #define memcpy_toio(d,s,sz) _memcpy_toio(d,s,sz) | ^~~~~~~~~~~~ include/asm-generic/io.h:107:13: note: in expansion of macro 'memcpy_toio' 107 | extern void memcpy_toio(volatile void __iomem *to, const void *from, | ^~~~~~~~~~~ -- In file included from arch/sparc/include/asm/io.h:7, from include/linux/io.h:14, from include/linux/irq.h:20, from include/asm-generic/hardirq.h:17, from arch/sparc/include/asm/hardirq_32.h:11, from arch/sparc/include/asm/hardirq.h:7, from include/linux/hardirq.h:11, from include/linux/interrupt.h:11, from include/linux/rtc.h:17, from lib/vsprintf.c:36: >> arch/sparc/include/asm/io_32.h:23:20: error: static declaration of '_memset_io' follows non-static declaration 23 | static inline void _memset_io(volatile void __iomem *dst, | ^~~~~~~~~~ arch/sparc/include/asm/io_32.h:10:31: note: previous declaration of '_memset_io' with type 'void(volatile void *, int, size_t)' {aka 'void(volatile void *, int, unsigned int)'} 10 | #define memset_io(d,c,sz) _memset_io(d,c,sz) | ^~~~~~~~~~ include/asm-generic/io.h:109:13: note: in expansion of macro 'memset_io' 109 | extern void memset_io(volatile void __iomem *dst, int c, size_t count); | ^~~~~~~~~ >> arch/sparc/include/asm/io_32.h:34:20: error: static declaration of '_memcpy_fromio' follows non-static declaration 34 | static inline void _memcpy_fromio(void *dst, const volatile void __iomem *src, | ^~~~~~~~~~~~~~ arch/sparc/include/asm/io_32.h:11:31: note: previous declaration of '_memcpy_fromio' with type 'void(void *, const volatile void *, size_t)' {aka 'void(void *, const volatile void *, unsigned int)'} 11 | #define memcpy_fromio(d,s,sz) _memcpy_fromio(d,s,sz) | ^~~~~~~~~~~~~~ include/asm-generic/io.h:105:13: note: in expansion of macro 'memcpy_fromio' 105 | extern void memcpy_fromio(void *to, const volatile void __iomem *from, | ^~~~~~~~~~~~~ >> arch/sparc/include/asm/io_32.h:46:20: error: static declaration of '_memcpy_toio' follows non-static declaration 46 | static inline void _memcpy_toio(volatile void __iomem *dst, const void *src, | ^~~~~~~~~~~~ arch/sparc/include/asm/io_32.h:12:31: note: previous declaration of '_memcpy_toio' with type 'void(volatile void *, const void *, size_t)' {aka 'void(volatile void *, const void *, unsigned int)'} 12 | #define memcpy_toio(d,s,sz) _memcpy_toio(d,s,sz) | ^~~~~~~~~~~~ include/asm-generic/io.h:107:13: note: in expansion of macro 'memcpy_toio' 107 | extern void memcpy_toio(volatile void __iomem *to, const void *from, | ^~~~~~~~~~~ lib/vsprintf.c: In function 'va_format': lib/vsprintf.c:1683:9: warning: function 'va_format' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] 1683 | buf += vsnprintf(buf, end > buf ? end - buf : 0, va_fmt->fmt, va); | ^~~ -- In file included from arch/sparc/include/asm/io.h:7, from include/linux/io.h:14, from lib/iomap_copy.c:8: >> arch/sparc/include/asm/io_32.h:23:20: error: static declaration of '_memset_io' follows non-static declaration 23 | static inline void _memset_io(volatile void __iomem *dst, | ^~~~~~~~~~ arch/sparc/include/asm/io_32.h:10:31: note: previous declaration of '_memset_io' with type 'void(volatile void *, int, size_t)' {aka 'void(volatile void *, int, unsigned int)'} 10 | #define memset_io(d,c,sz) _memset_io(d,c,sz) | ^~~~~~~~~~ include/asm-generic/io.h:109:13: note: in expansion of macro 'memset_io' 109 | extern void memset_io(volatile void __iomem *dst, int c, size_t count); | ^~~~~~~~~ >> arch/sparc/include/asm/io_32.h:34:20: error: static declaration of '_memcpy_fromio' follows non-static declaration 34 | static inline void _memcpy_fromio(void *dst, const volatile void __iomem *src, | ^~~~~~~~~~~~~~ arch/sparc/include/asm/io_32.h:11:31: note: previous declaration of '_memcpy_fromio' with type 'void(void *, const volatile void *, size_t)' {aka 'void(void *, const volatile void *, unsigned int)'} 11 | #define memcpy_fromio(d,s,sz) _memcpy_fromio(d,s,sz) | ^~~~~~~~~~~~~~ include/asm-generic/io.h:105:13: note: in expansion of macro 'memcpy_fromio' 105 | extern void memcpy_fromio(void *to, const volatile void __iomem *from, | ^~~~~~~~~~~~~ >> arch/sparc/include/asm/io_32.h:46:20: error: static declaration of '_memcpy_toio' follows non-static declaration 46 | static inline void _memcpy_toio(volatile void __iomem *dst, const void *src, | ^~~~~~~~~~~~ arch/sparc/include/asm/io_32.h:12:31: note: previous declaration of '_memcpy_toio' with type 'void(volatile void *, const void *, size_t)' {aka 'void(volatile void *, const void *, unsigned int)'} 12 | #define memcpy_toio(d,s,sz) _memcpy_toio(d,s,sz) | ^~~~~~~~~~~~ include/asm-generic/io.h:107:13: note: in expansion of macro 'memcpy_toio' 107 | extern void memcpy_toio(volatile void __iomem *to, const void *from, | ^~~~~~~~~~~ lib/iomap_copy.c:10:10: fatal error: linux/unaligned.h: No such file or directory 10 | #include <linux/unaligned.h> | ^~~~~~~~~~~~~~~~~~~ compilation terminated. vim +/_memset_io +23 arch/sparc/include/asm/io_32.h f5e706ad886b6a include/asm-sparc/io_32.h Sam Ravnborg 2008-07-17 22 e1039fb426094d arch/sparc/include/asm/io_32.h Sam Ravnborg 2014-04-26 @23 static inline void _memset_io(volatile void __iomem *dst, e1039fb426094d arch/sparc/include/asm/io_32.h Sam Ravnborg 2014-04-26 24 int c, __kernel_size_t n) f5e706ad886b6a include/asm-sparc/io_32.h Sam Ravnborg 2008-07-17 25 { e1039fb426094d arch/sparc/include/asm/io_32.h Sam Ravnborg 2014-04-26 26 volatile void __iomem *d = dst; f5e706ad886b6a include/asm-sparc/io_32.h Sam Ravnborg 2008-07-17 27 e1039fb426094d arch/sparc/include/asm/io_32.h Sam Ravnborg 2014-04-26 28 while (n--) { e1039fb426094d arch/sparc/include/asm/io_32.h Sam Ravnborg 2014-04-26 29 writeb(c, d); e1039fb426094d arch/sparc/include/asm/io_32.h Sam Ravnborg 2014-04-26 30 d++; f5e706ad886b6a include/asm-sparc/io_32.h Sam Ravnborg 2008-07-17 31 } f5e706ad886b6a include/asm-sparc/io_32.h Sam Ravnborg 2008-07-17 32 } f5e706ad886b6a include/asm-sparc/io_32.h Sam Ravnborg 2008-07-17 33 e1039fb426094d arch/sparc/include/asm/io_32.h Sam Ravnborg 2014-04-26 @34 static inline void _memcpy_fromio(void *dst, const volatile void __iomem *src, e1039fb426094d arch/sparc/include/asm/io_32.h Sam Ravnborg 2014-04-26 35 __kernel_size_t n) f5e706ad886b6a include/asm-sparc/io_32.h Sam Ravnborg 2008-07-17 36 { e1039fb426094d arch/sparc/include/asm/io_32.h Sam Ravnborg 2014-04-26 37 char *d = dst; f5e706ad886b6a include/asm-sparc/io_32.h Sam Ravnborg 2008-07-17 38 e1039fb426094d arch/sparc/include/asm/io_32.h Sam Ravnborg 2014-04-26 39 while (n--) { e1039fb426094d arch/sparc/include/asm/io_32.h Sam Ravnborg 2014-04-26 40 char tmp = readb(src); e1039fb426094d arch/sparc/include/asm/io_32.h Sam Ravnborg 2014-04-26 41 *d++ = tmp; e1039fb426094d arch/sparc/include/asm/io_32.h Sam Ravnborg 2014-04-26 42 src++; f5e706ad886b6a include/asm-sparc/io_32.h Sam Ravnborg 2008-07-17 43 } f5e706ad886b6a include/asm-sparc/io_32.h Sam Ravnborg 2008-07-17 44 } f5e706ad886b6a include/asm-sparc/io_32.h Sam Ravnborg 2008-07-17 45 e1039fb426094d arch/sparc/include/asm/io_32.h Sam Ravnborg 2014-04-26 @46 static inline void _memcpy_toio(volatile void __iomem *dst, const void *src, e1039fb426094d arch/sparc/include/asm/io_32.h Sam Ravnborg 2014-04-26 47 __kernel_size_t n) f5e706ad886b6a include/asm-sparc/io_32.h Sam Ravnborg 2008-07-17 48 { e1039fb426094d arch/sparc/include/asm/io_32.h Sam Ravnborg 2014-04-26 49 const char *s = src; e1039fb426094d arch/sparc/include/asm/io_32.h Sam Ravnborg 2014-04-26 50 volatile void __iomem *d = dst; f5e706ad886b6a include/asm-sparc/io_32.h Sam Ravnborg 2008-07-17 51 e1039fb426094d arch/sparc/include/asm/io_32.h Sam Ravnborg 2014-04-26 52 while (n--) { e1039fb426094d arch/sparc/include/asm/io_32.h Sam Ravnborg 2014-04-26 53 char tmp = *s++; e1039fb426094d arch/sparc/include/asm/io_32.h Sam Ravnborg 2014-04-26 54 writeb(tmp, d); e1039fb426094d arch/sparc/include/asm/io_32.h Sam Ravnborg 2014-04-26 55 d++; f5e706ad886b6a include/asm-sparc/io_32.h Sam Ravnborg 2008-07-17 56 } f5e706ad886b6a include/asm-sparc/io_32.h Sam Ravnborg 2008-07-17 57 } f5e706ad886b6a include/asm-sparc/io_32.h Sam Ravnborg 2008-07-17 58 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki