[linux-next:master 4620/4884] kernel/irq/generic-chip.c:210:9: error: call to undeclared function 'ioread32be'; ISO C99 and later do not support implicit function declarations

kernel test robot
2023-12-05T11:37:12Z

tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 0f5f12ac05f36f117e793656c3f560625e927f1b
commit: 17229c19e5bf0b5dc8b68dc4ca4e7012e7da4747 [4620/4884] mips: remove extraneous asm-generic/iomap.h include
config: mips-allnoconfig (https://download.01.org/0day-ci/archive/20231205/202312051917.ldwRetjX-lkp@intel.com/config)
compiler: clang version 17.0.0 (https://github.com/llvm/llvm-project.git 4a5ac14ee968ff0ad5d2cc1ffa0299048db4c88a)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231205/202312051917.ldwRetjX-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/202312051917.ldwRetjX-lkp@intel.com/

Note: the linux-next/master HEAD 0f5f12ac05f36f117e793656c3f560625e927f1b builds fine.
It may have been fixed somewhere.

All error/warnings (new ones prefixed by >>):

>> kernel/irq/generic-chip.c:210:9: error: call to undeclared function 'ioread32be'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
210 | return ioread32be(addr);
| ^
>> kernel/irq/generic-chip.c:215:2: error: call to undeclared function 'iowrite32be'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
215 | iowrite32be(val, addr);
| ^
2 errors generated.
--
>> kernel/iomem.c:110:10: error: call to undeclared function 'ioremap_wt'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
110 | addr = ioremap_wt(offset, size);
| ^
kernel/iomem.c:110:10: note: did you mean 'ioremap_prot'?
arch/mips/include/asm/io.h:152:15: note: 'ioremap_prot' declared here
152 | void __iomem *ioremap_prot(phys_addr_t offset, unsigned long size,
| ^
>> kernel/iomem.c:110:8: error: incompatible integer to pointer conversion assigning to 'void *' from 'int' [-Wint-conversion]
110 | addr = ioremap_wt(offset, size);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~
2 errors generated.
--
In file included from lib/iomap.c:7:
>> include/linux/pci.h:306:46: warning: declaration of 'struct pci_dev' will not be visible outside of this function [-Wvisibility]
306 | enum pci_bus_speed pcie_get_speed_cap(struct pci_dev *dev);
| ^
include/linux/pci.h:307:48: warning: declaration of 'struct pci_dev' will not be visible outside of this function [-Wvisibility]
307 | enum pcie_link_width pcie_get_width_cap(struct pci_dev *dev);
| ^
>> lib/iomap.c:79:14: warning: no previous prototype for function 'ioread8' [-Wmissing-prototypes]
79 | unsigned int ioread8(const void __iomem *addr)
| ^
lib/iomap.c:79:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
79 | unsigned int ioread8(const void __iomem *addr)
| ^
| static
>> lib/iomap.c:85:14: warning: no previous prototype for function 'ioread16' [-Wmissing-prototypes]
85 | unsigned int ioread16(const void __iomem *addr)
| ^
lib/iomap.c:85:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
85 | unsigned int ioread16(const void __iomem *addr)
| ^
| static
>> lib/iomap.c:91:14: warning: no previous prototype for function 'ioread16be' [-Wmissing-prototypes]
91 | unsigned int ioread16be(const void __iomem *addr)
| ^
lib/iomap.c:91:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
91 | unsigned int ioread16be(const void __iomem *addr)
| ^
| static
>> lib/iomap.c:97:14: warning: no previous prototype for function 'ioread32' [-Wmissing-prototypes]
97 | unsigned int ioread32(const void __iomem *addr)
| ^
lib/iomap.c:97:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
97 | unsigned int ioread32(const void __iomem *addr)
| ^
| static
>> lib/iomap.c:103:14: warning: no previous prototype for function 'ioread32be' [-Wmissing-prototypes]
103 | unsigned int ioread32be(const void __iomem *addr)
| ^
lib/iomap.c:103:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
103 | unsigned int ioread32be(const void __iomem *addr)
| ^
| static
>> lib/iomap.c:203:6: warning: no previous prototype for function 'iowrite8' [-Wmissing-prototypes]
203 | void iowrite8(u8 val, void __iomem *addr)
| ^
lib/iomap.c:203:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
203 | void iowrite8(u8 val, void __iomem *addr)
| ^
| static
>> lib/iomap.c:209:6: warning: no previous prototype for function 'iowrite16' [-Wmissing-prototypes]
209 | void iowrite16(u16 val, void __iomem *addr)
| ^
lib/iomap.c:209:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
209 | void iowrite16(u16 val, void __iomem *addr)
| ^
| static
>> lib/iomap.c:215:6: warning: no previous prototype for function 'iowrite16be' [-Wmissing-prototypes]
215 | void iowrite16be(u16 val, void __iomem *addr)
| ^
lib/iomap.c:215:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
215 | void iowrite16be(u16 val, void __iomem *addr)
| ^
| static
>> lib/iomap.c:221:6: warning: no previous prototype for function 'iowrite32' [-Wmissing-prototypes]
221 | void iowrite32(u32 val, void __iomem *addr)
| ^
lib/iomap.c:221:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
221 | void iowrite32(u32 val, void __iomem *addr)
| ^
| static
>> lib/iomap.c:227:6: warning: no previous prototype for function 'iowrite32be' [-Wmissing-prototypes]
227 | void iowrite32be(u32 val, void __iomem *addr)
| ^
lib/iomap.c:227:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
227 | void iowrite32be(u32 val, void __iomem *addr)
| ^
| static
>> lib/iomap.c:360:6: warning: no previous prototype for function 'ioread8_rep' [-Wmissing-prototypes]
360 | void ioread8_rep(const void __iomem *addr, void *dst, unsigned long count)
| ^
lib/iomap.c:360:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
360 | void ioread8_rep(const void __iomem *addr, void *dst, unsigned long count)
| ^
| static
>> lib/iomap.c:366:6: warning: no previous prototype for function 'ioread16_rep' [-Wmissing-prototypes]
366 | void ioread16_rep(const void __iomem *addr, void *dst, unsigned long count)
| ^
lib/iomap.c:366:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
366 | void ioread16_rep(const void __iomem *addr, void *dst, unsigned long count)
| ^
| static
>> lib/iomap.c:372:6: warning: no previous prototype for function 'ioread32_rep' [-Wmissing-prototypes]
372 | void ioread32_rep(const void __iomem *addr, void *dst, unsigned long count)
| ^
lib/iomap.c:372:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
372 | void ioread32_rep(const void __iomem *addr, void *dst, unsigned long count)
| ^
| static
>> lib/iomap.c:382:6: warning: no previous prototype for function 'iowrite8_rep' [-Wmissing-prototypes]
382 | void iowrite8_rep(void __iomem *addr, const void *src, unsigned long count)
| ^
lib/iomap.c:382:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
382 | void iowrite8_rep(void __iomem *addr, const void *src, unsigned long count)
| ^
| static
>> lib/iomap.c:388:6: warning: no previous prototype for function 'iowrite16_rep' [-Wmissing-prototypes]
388 | void iowrite16_rep(void __iomem *addr, const void *src, unsigned long count)
| ^
lib/iomap.c:388:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
388 | void iowrite16_rep(void __iomem *addr, const void *src, unsigned long count)
| ^
| static
>> lib/iomap.c:394:6: warning: no previous prototype for function 'iowrite32_rep' [-Wmissing-prototypes]
394 | void iowrite32_rep(void __iomem *addr, const void *src, unsigned long count)
| ^
lib/iomap.c:394:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
394 | void iowrite32_rep(void __iomem *addr, const void *src, unsigned long count)
| ^
| static
>> lib/iomap.c:406:15: warning: no previous prototype for function 'ioport_map' [-Wmissing-prototypes]
406 | void __iomem *ioport_map(unsigned long port, unsigned int nr)
| ^
lib/iomap.c:406:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
406 | void __iomem *ioport_map(unsigned long port, unsigned int nr)
| ^
| static
>> lib/iomap.c:413:6: warning: no previous prototype for function 'ioport_unmap' [-Wmissing-prototypes]
413 | void ioport_unmap(void __iomem *addr)
| ^
lib/iomap.c:413:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
413 | void ioport_unmap(void __iomem *addr)
| ^
| static
20 warnings generated.
--
In file included from lib/pci_iomap.c:7:
>> include/linux/pci.h:306:46: warning: declaration of 'struct pci_dev' will not be visible outside of this function [-Wvisibility]
306 | enum pci_bus_speed pcie_get_speed_cap(struct pci_dev *dev);
| ^
include/linux/pci.h:307:48: warning: declaration of 'struct pci_dev' will not be visible outside of this function [-Wvisibility]
307 | enum pcie_link_width pcie_get_width_cap(struct pci_dev *dev);
| ^
2 warnings generated.
--
In file included from lib/devres.c:3:
>> include/linux/pci.h:306:46: warning: declaration of 'struct pci_dev' will not be visible outside of this function [-Wvisibility]
306 | enum pci_bus_speed pcie_get_speed_cap(struct pci_dev *dev);
| ^
include/linux/pci.h:307:48: warning: declaration of 'struct pci_dev' will not be visible outside of this function [-Wvisibility]
307 | enum pcie_link_width pcie_get_width_cap(struct pci_dev *dev);
| ^
>> lib/devres.c:48:10: error: call to undeclared function 'ioremap_np'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
48 | addr = ioremap_np(offset, size);
| ^
lib/devres.c:48:8: error: incompatible integer to pointer conversion assigning to 'void *' from 'int' [-Wint-conversion]
48 | addr = ioremap_np(offset, size);
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~
>> lib/devres.c:256:2: error: call to undeclared function 'ioport_unmap'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
256 | ioport_unmap(*(void __iomem **)res);
| ^
>> lib/devres.c:286:9: error: call to undeclared function 'ioport_map'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
286 | addr = ioport_map(port, nr);
| ^
lib/devres.c:286:7: error: incompatible integer to pointer conversion assigning to 'void *' from 'int' [-Wint-conversion]
286 | addr = ioport_map(port, nr);
| ^ ~~~~~~~~~~~~~~~~~~~~
lib/devres.c:307:2: error: call to undeclared function 'ioport_unmap'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
307 | ioport_unmap(addr);
| ^
2 warnings and 6 errors generated.
--
>> drivers/clk/clk-divider.c:32:10: error: call to undeclared function 'ioread32be'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
32 | return ioread32be(divider->reg);
| ^
>> drivers/clk/clk-divider.c:40:3: error: call to undeclared function 'iowrite32be'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
40 | iowrite32be(val, divider->reg);
| ^
2 errors generated.
--
>> drivers/clk/clk-gate.c:30:10: error: call to undeclared function 'ioread32be'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
30 | return ioread32be(gate->reg);
| ^
>> drivers/clk/clk-gate.c:38:3: error: call to undeclared function 'iowrite32be'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
38 | iowrite32be(val, gate->reg);
| ^
2 errors generated.
--
>> drivers/clk/clk-multiplier.c:18:10: error: call to undeclared function 'ioread32be'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
18 | return ioread32be(mult->reg);
| ^
>> drivers/clk/clk-multiplier.c:26:3: error: call to undeclared function 'iowrite32be'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
26 | iowrite32be(val, mult->reg);
| ^
2 errors generated.
--
>> drivers/clk/clk-mux.c:30:10: error: call to undeclared function 'ioread32be'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
30 | return ioread32be(mux->reg);
| ^
>> drivers/clk/clk-mux.c:38:3: error: call to undeclared function 'iowrite32be'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
38 | iowrite32be(val, mux->reg);
| ^
2 errors generated.
--
>> drivers/clk/clk-fractional-divider.c:56:10: error: call to undeclared function 'ioread32be'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
56 | return ioread32be(fd->reg);
| ^
>> drivers/clk/clk-fractional-divider.c:64:3: error: call to undeclared function 'iowrite32be'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
64 | iowrite32be(val, fd->reg);
| ^
2 errors generated.
--
In file included from drivers/of/address.c:11:
>> include/linux/pci.h:306:46: warning: declaration of 'struct pci_dev' will not be visible outside of this function [-Wvisibility]
306 | enum pci_bus_speed pcie_get_speed_cap(struct pci_dev *dev);
| ^
include/linux/pci.h:307:48: warning: declaration of 'struct pci_dev' will not be visible outside of this function [-Wvisibility]
307 | enum pcie_link_width pcie_get_width_cap(struct pci_dev *dev);
| ^
>> drivers/of/address.c:1154:10: error: call to undeclared function 'ioremap_np'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
1154 | return ioremap_np(res.start, resource_size(&res));
| ^
>> drivers/of/address.c:1154:10: error: incompatible integer to pointer conversion returning 'int' from a function with result type 'void *' [-Wint-conversion]
1154 | return ioremap_np(res.start, resource_size(&res));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/of/address.c:1189:9: error: call to undeclared function 'ioremap_np'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
1189 | mem = ioremap_np(res.start, resource_size(&res));
| ^
>> drivers/of/address.c:1189:7: error: incompatible integer to pointer conversion assigning to 'void *' from 'int' [-Wint-conversion]
1189 | mem = ioremap_np(res.start, resource_size(&res));
| ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2 warnings and 4 errors generated.
..

vim +/ioread32be +210 kernel/irq/generic-chip.c

7d8280624797bbe Thomas Gleixner 2011-04-03 207
b79055952badbd7 Kevin Cernekee 2014-11-06 208 static u32 irq_readl_be(void __iomem *addr)
b79055952badbd7 Kevin Cernekee 2014-11-06 209 {
b79055952badbd7 Kevin Cernekee 2014-11-06 @210 return ioread32be(addr);
b79055952badbd7 Kevin Cernekee 2014-11-06 211 }
b79055952badbd7 Kevin Cernekee 2014-11-06 212
b79055952badbd7 Kevin Cernekee 2014-11-06 213 static void irq_writel_be(u32 val, void __iomem *addr)
b79055952badbd7 Kevin Cernekee 2014-11-06 214 {
b79055952badbd7 Kevin Cernekee 2014-11-06 @215 iowrite32be(val, addr);
b79055952badbd7 Kevin Cernekee 2014-11-06 216 }
b79055952badbd7 Kevin Cernekee 2014-11-06 217

:::::: The code at line 210 was first introduced by commit
:::::: b79055952badbd73710685643bab44104f2509ea genirq: Generic chip: Add big endian I/O accessors

:::::: TO: Kevin Cernekee <cernekee@gmail.com>
:::::: CC: Jason Cooper <jason@lakedaemon.net>

--
0-DAY CI Kernel Test Service