tree:
https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git queue-5.4
head: d2c5af89e80c5b71f1da59879464a930947306a2
commit: c3dd1d15539e5e491c6dabbb53611c3c77767d64 [119/132] of/address: Introduce
of_dma_get_max_cpu_address()
config: arm-randconfig-r023-20210318 (attached as .config)
compiler: clang version 13.0.0 (
https://github.com/llvm/llvm-project
436c6c9c20cc522c92a923440a5fc509c342a7db)
reproduce (this is a W=1 build):
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
#
https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git/c...
git remote add sashal-linux-stable
https://git.kernel.org/pub/scm/linux/kernel/git/sashal/linux-stable.git
git fetch --no-tags sashal-linux-stable queue-5.4
git checkout c3dd1d15539e5e491c6dabbb53611c3c77767d64
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
> drivers/of/address.c:1007:25: error: variable has incomplete type
'struct of_range_parser'
struct of_range_parser parser;
^
drivers/of/address.c:1007:9: note: forward declaration of 'struct
of_range_parser'
struct of_range_parser parser;
^
> drivers/of/address.c:1010:18: error: variable has incomplete type
'struct of_range'
struct of_range range;
^
drivers/of/address.c:1010:9: note: forward declaration of 'struct of_range'
struct of_range range;
^
> drivers/of/address.c:1020:3: error: implicit declaration of
function 'of_dma_range_parser_init' [-Werror,-Wimplicit-function-declaration]
of_dma_range_parser_init(&parser, np);
^
drivers/of/address.c:1020:3: note: did you mean 'of_pci_range_parser_init'?
drivers/of/address.c:254:5: note: 'of_pci_range_parser_init' declared here
int of_pci_range_parser_init(struct of_pci_range_parser *parser,
^
> drivers/of/address.c:1021:3: error: implicit declaration of
function 'for_each_of_range' [-Werror,-Wimplicit-function-declaration]
for_each_of_range(&parser, &range)
^
4 errors generated.
vim +1007 drivers/of/address.c
995
996 /**
997 * of_dma_get_max_cpu_address - Gets highest CPU address suitable for DMA
998 * @np: The node to start searching from or NULL to start from the root
999 *
1000 * Gets the highest CPU physical address that is addressable by all DMA masters
1001 * in the sub-tree pointed by np, or the whole tree if NULL is passed. If no
1002 * DMA constrained device is found, it returns PHYS_ADDR_MAX.
1003 */
1004 phys_addr_t __init of_dma_get_max_cpu_address(struct device_node *np)
1005 {
1006 phys_addr_t max_cpu_addr = PHYS_ADDR_MAX;
1007 struct of_range_parser parser;
1008 phys_addr_t
subtree_max_addr;
1009 struct device_node *child;
1010 struct of_range range;
1011 const __be32 *ranges;
1012 u64 cpu_end = 0;
1013 int len;
1014
1015 if (!np)
1016 np = of_root;
1017
1018 ranges = of_get_property(np, "dma-ranges", &len);
1019 if (ranges && len) {
1020 of_dma_range_parser_init(&parser, np);
1021 for_each_of_range(&parser, &range)
1022 if (range.cpu_addr +
range.size > cpu_end)
1023 cpu_end = range.cpu_addr + range.size - 1;
1024
1025 if (max_cpu_addr > cpu_end)
1026 max_cpu_addr = cpu_end;
1027 }
1028
1029 for_each_available_child_of_node(np, child) {
1030 subtree_max_addr = of_dma_get_max_cpu_address(child);
1031 if (max_cpu_addr > subtree_max_addr)
1032 max_cpu_addr = subtree_max_addr;
1033 }
1034
1035 return max_cpu_addr;
1036 }
1037
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org