[ammarfaizi2-block:robh/linux/dt/pop-pci-nodes 2/2] drivers/pci/of.c:84: undefined reference to `.of_attach_node'

From: kernel test robot
Date: Wed Apr 06 2022 - 15:33:35 EST


tree: https://github.com/ammarfaizi2/linux-block robh/linux/dt/pop-pci-nodes
head: b9198a9525a97d05b0bb2a7282fede92d7d2d93d
commit: b9198a9525a97d05b0bb2a7282fede92d7d2d93d [2/2] PCI: Create DT nodes if they don't exist
config: powerpc64-buildonly-randconfig-r001-20220405 (https://download.01.org/0day-ci/archive/20220407/202204070238.tRrrzyyE-lkp@xxxxxxxxx/config)
compiler: powerpc64-linux-gcc (GCC) 11.2.0
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
# https://github.com/ammarfaizi2/linux-block/commit/b9198a9525a97d05b0bb2a7282fede92d7d2d93d
git remote add ammarfaizi2-block https://github.com/ammarfaizi2/linux-block
git fetch --no-tags ammarfaizi2-block robh/linux/dt/pop-pci-nodes
git checkout b9198a9525a97d05b0bb2a7282fede92d7d2d93d
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=powerpc SHELL=/bin/bash

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

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

>> powerpc64-linux-ld: warning: discarding dynamic section .glink
>> powerpc64-linux-ld: warning: discarding dynamic section .plt
powerpc64-linux-ld: linkage table error against `of_attach_node'
powerpc64-linux-ld: stubs don't match calculated size
powerpc64-linux-ld: can not build stubs: bad value
powerpc64-linux-ld: drivers/pci/of.o: in function `make_dev_node':
>> drivers/pci/of.c:84: undefined reference to `.of_attach_node'
>> powerpc64-linux-ld: drivers/pci/of.c:84: undefined reference to `.of_attach_node'
powerpc64-linux-ld: drivers/pci/of.o: in function `make_bus_node':
drivers/pci/of.c:97: undefined reference to `.of_attach_node'
powerpc64-linux-ld: drivers/pci/of.c:97: undefined reference to `.of_attach_node'


vim +84 drivers/pci/of.c

59
60 void make_dev_node(struct pci_dev *dev)
61 {
62 struct device_node *node;
63 struct property *prop;
64 __be32 *val;
65
66 node = make_node();
67
68 prop = kzalloc(sizeof(*prop) + sizeof(__be32) * 5, GFP_KERNEL);
69 prop->name = "reg";
70 prop->value = prop + 1;
71 prop->length = sizeof(__be32) * 5;
72 val = prop->value;
73 val[0] = __cpu_to_be32(dev->devfn << 8);
74 val[4] = __cpu_to_be32(SZ_4K);
75 node->properties = prop;
76
77 if (pci_is_bridge(dev)) {
78 add_bus_props(node);
79 node->full_name = kasprintf(GFP_KERNEL, "pci@%x,%x", PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn));
80 } else
81 node->full_name = kasprintf(GFP_KERNEL, "dev@%x,%x", PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn));
82
83 node->parent = dev->bus->dev.of_node;
> 84 of_attach_node(node);
85 dev->dev.of_node = node;
86 }
87

--
0-DAY CI Kernel Test Service
https://01.org/lkp