Re: [PATCH v4 01/20] driver core: Split devres APIs to device/devres.h

kernel test robot
2025-02-10T14:09:30Z

Hi Raag,

kernel test robot noticed the following build errors:

[auto build test ERROR on a1e062ab4a1f19bb0e94093ef90ab9a74f1f7744]

url: https://github.com/intel-lab-lkp/linux/commits/Raag-Jadav/driver-core-Split-devres-APIs-to-device-devres-h/20250210-145732
base: a1e062ab4a1f19bb0e94093ef90ab9a74f1f7744
patch link: https://lore.kernel.org/r/20250210064906.2181867-2-raag.jadav%40intel.com
patch subject: [PATCH v4 01/20] driver core: Split devres APIs to device/devres.h
config: powerpc-randconfig-003-20250210 (https://download.01.org/0day-ci/archive/20250210/202502102137.SA3rtuTB-lkp@intel.com/config)
compiler: powerpc-linux-gcc (GCC) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250210/202502102137.SA3rtuTB-lkp@intel.com/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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202502102137.SA3rtuTB-lkp@intel.com/

All errors (new ones prefixed by >>):

In file included from include/linux/device/devres.h:7,
from include/linux/device.h:31,
from arch/powerpc/include/asm/io.h:22,
from drivers/video/fbdev/sis/init.h:64,
from drivers/video/fbdev/sis/init.c:59:
include/linux/io.h: In function 'pci_remap_cfgspace':
>> include/linux/io.h:106:16: error: implicit declaration of function 'ioremap_np' [-Wimplicit-function-declaration]
106 | return ioremap_np(offset, size) ?: ioremap(offset, size);
| ^~~~~~~~~~
>> include/linux/io.h:106:44: error: implicit declaration of function 'ioremap' [-Wimplicit-function-declaration]
106 | return ioremap_np(offset, size) ?: ioremap(offset, size);
| ^~~~~~~
>> include/linux/io.h:106:42: error: returning 'int' from a function with return type 'void *' makes pointer from integer without a cast [-Wint-conversion]
106 | return ioremap_np(offset, size) ?: ioremap(offset, size);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h: At top level:
>> arch/powerpc/include/asm/io.h:885:22: error: conflicting types for 'ioremap'; have 'void *(phys_addr_t, long unsigned int)' {aka 'void *(unsigned int, long unsigned int)'}
885 | extern void __iomem *ioremap(phys_addr_t address, unsigned long size);
| ^~~~~~~
include/linux/io.h:106:44: note: previous implicit declaration of 'ioremap' with type 'int()'
106 | return ioremap_np(offset, size) ?: ioremap(offset, size);
| ^~~~~~~
In file included from arch/powerpc/include/asm/io.h:1031:
>> include/asm-generic/io.h:1161:20: error: conflicting types for 'ioremap_np'; have 'void *(phys_addr_t, size_t)' {aka 'void *(unsigned int, unsigned int)'}
1161 | #define ioremap_np ioremap_np
| ^~~~~~~~~~
include/asm-generic/io.h:1162:29: note: in expansion of macro 'ioremap_np'
1162 | static inline void __iomem *ioremap_np(phys_addr_t offset, size_t size)
| ^~~~~~~~~~
include/linux/io.h:106:16: note: previous implicit declaration of 'ioremap_np' with type 'int()'
106 | return ioremap_np(offset, size) ?: ioremap(offset, size);
| ^~~~~~~~~~
--
In file included from include/linux/device/devres.h:7,
from include/linux/device.h:31,
from arch/powerpc/include/asm/io.h:22,
from drivers/video/fbdev/sis/init301.h:64,
from drivers/video/fbdev/sis/init301.c:72:
include/linux/io.h: In function 'pci_remap_cfgspace':
>> include/linux/io.h:106:16: error: implicit declaration of function 'ioremap_np' [-Wimplicit-function-declaration]
106 | return ioremap_np(offset, size) ?: ioremap(offset, size);
| ^~~~~~~~~~
>> include/linux/io.h:106:44: error: implicit declaration of function 'ioremap' [-Wimplicit-function-declaration]
106 | return ioremap_np(offset, size) ?: ioremap(offset, size);
| ^~~~~~~
>> include/linux/io.h:106:42: error: returning 'int' from a function with return type 'void *' makes pointer from integer without a cast [-Wint-conversion]
106 | return ioremap_np(offset, size) ?: ioremap(offset, size);
| ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
arch/powerpc/include/asm/io.h: At top level:
>> arch/powerpc/include/asm/io.h:885:22: error: conflicting types for 'ioremap'; have 'void *(phys_addr_t, long unsigned int)' {aka 'void *(unsigned int, long unsigned int)'}
885 | extern void __iomem *ioremap(phys_addr_t address, unsigned long size);
| ^~~~~~~
include/linux/io.h:106:44: note: previous implicit declaration of 'ioremap' with type 'int()'
106 | return ioremap_np(offset, size) ?: ioremap(offset, size);
| ^~~~~~~
In file included from arch/powerpc/include/asm/io.h:1031:
>> include/asm-generic/io.h:1161:20: error: conflicting types for 'ioremap_np'; have 'void *(phys_addr_t, size_t)' {aka 'void *(unsigned int, unsigned int)'}
1161 | #define ioremap_np ioremap_np
| ^~~~~~~~~~
include/asm-generic/io.h:1162:29: note: in expansion of macro 'ioremap_np'
1162 | static inline void __iomem *ioremap_np(phys_addr_t offset, size_t size)
| ^~~~~~~~~~
include/linux/io.h:106:16: note: previous implicit declaration of 'ioremap_np' with type 'int()'
106 | return ioremap_np(offset, size) ?: ioremap(offset, size);
| ^~~~~~~~~~
drivers/video/fbdev/sis/init301.c: In function 'SiS_SetCRT2ModeRegs':
drivers/video/fbdev/sis/init301.c:2687:24: warning: variable 'modeflag' set but not used [-Wunused-but-set-variable]
2687 | unsigned short i, j, modeflag, tempah=0;
| ^~~~~~~~
drivers/video/fbdev/sis/init301.c: In function 'SiS_SetGroup1':
drivers/video/fbdev/sis/init301.c:6233:52: warning: variable 'resinfo' set but not used [-Wunused-but-set-variable]
6233 | unsigned short pushbx=0, CRT1Index=0, modeflag, resinfo=0;
| ^~~~~~~

vim +/ioremap_np +106 include/linux/io.h

7d3dcf26a6559f Christoph Hellwig 2015-08-10 84
4d312ac057da57 Arnd Bergmann 2023-05-16 85 /* architectures can override this */
4d312ac057da57 Arnd Bergmann 2023-05-16 86 pgprot_t __init early_memremap_pgprot_adjust(resource_size_t phys_addr,
4d312ac057da57 Arnd Bergmann 2023-05-16 87 unsigned long size, pgprot_t prot);
4d312ac057da57 Arnd Bergmann 2023-05-16 88
4d312ac057da57 Arnd Bergmann 2023-05-16 89
cf9ea8ca4a0bea Lorenzo Pieralisi 2017-04-19 90 #ifdef CONFIG_PCI
cf9ea8ca4a0bea Lorenzo Pieralisi 2017-04-19 91 /*
cf9ea8ca4a0bea Lorenzo Pieralisi 2017-04-19 92 * The PCI specifications (Rev 3.0, 3.2.5 "Transaction Ordering and
b10eb2d50911f9 Hector Martin 2021-03-25 93 * Posting") mandate non-posted configuration transactions. This default
b10eb2d50911f9 Hector Martin 2021-03-25 94 * implementation attempts to use the ioremap_np() API to provide this
b10eb2d50911f9 Hector Martin 2021-03-25 95 * on arches that support it, and falls back to ioremap() on those that
b10eb2d50911f9 Hector Martin 2021-03-25 96 * don't. Overriding this function is deprecated; arches that properly
b10eb2d50911f9 Hector Martin 2021-03-25 97 * support non-posted accesses should implement ioremap_np() instead, which
b10eb2d50911f9 Hector Martin 2021-03-25 98 * this default implementation can then use to return mappings compliant with
b10eb2d50911f9 Hector Martin 2021-03-25 99 * the PCI specification.
cf9ea8ca4a0bea Lorenzo Pieralisi 2017-04-19 100 */
cf9ea8ca4a0bea Lorenzo Pieralisi 2017-04-19 101 #ifndef pci_remap_cfgspace
cf9ea8ca4a0bea Lorenzo Pieralisi 2017-04-19 102 #define pci_remap_cfgspace pci_remap_cfgspace
cf9ea8ca4a0bea Lorenzo Pieralisi 2017-04-19 103 static inline void __iomem *pci_remap_cfgspace(phys_addr_t offset,
cf9ea8ca4a0bea Lorenzo Pieralisi 2017-04-19 104 size_t size)
cf9ea8ca4a0bea Lorenzo Pieralisi 2017-04-19 105 {
b10eb2d50911f9 Hector Martin 2021-03-25 @106 return ioremap_np(offset, size) ?: ioremap(offset, size);
cf9ea8ca4a0bea Lorenzo Pieralisi 2017-04-19 107 }
cf9ea8ca4a0bea Lorenzo Pieralisi 2017-04-19 108 #endif
cf9ea8ca4a0bea Lorenzo Pieralisi 2017-04-19 109 #endif
cf9ea8ca4a0bea Lorenzo Pieralisi 2017-04-19 110

--
0-DAY CI Kernel Test Service