Re: [PATCH 1/1] PCI: Support VF resizable BAR

From: kernel test robot
Date: Fri May 17 2024 - 22:07:41 EST


Hi Lianjie,

kernel test robot noticed the following build errors:

[auto build test ERROR on cf87f46fd34d6c19283d9625a7822f20d90b64a4]

url: https://github.com/intel-lab-lkp/linux/commits/Lianjie-Shi/PCI-Support-VF-resizable-BAR/20240516-173624
base: cf87f46fd34d6c19283d9625a7822f20d90b64a4
patch link: https://lore.kernel.org/r/20240516093334.2266599-2-Lianjie.Shi%40amd.com
patch subject: [PATCH 1/1] PCI: Support VF resizable BAR
config: i386-randconfig-014-20240518 (https://download.01.org/0day-ci/archive/20240518/202405180954.pffoQtM9-lkp@xxxxxxxxx/config)
compiler: gcc-13 (Ubuntu 13.2.0-4ubuntu3) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240518/202405180954.pffoQtM9-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/202405180954.pffoQtM9-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

ld: drivers/pci/pci.o: in function `pci_restore_vf_rebar_state':
>> drivers/pci/pci.c:1895:(.text+0x3bff): undefined reference to `__udivdi3'


vim +1895 drivers/pci/pci.c

1869
1870 static void pci_restore_vf_rebar_state(struct pci_dev *pdev)
1871 {
1872 #ifdef CONFIG_PCI_IOV
1873 unsigned int pos, nbars, i;
1874 u32 ctrl;
1875 u16 total;
1876
1877 pos = pci_find_ext_capability(pdev, PCI_EXT_CAP_ID_VF_REBAR);
1878 if (!pos)
1879 return;
1880
1881 pci_read_config_dword(pdev, pos + PCI_REBAR_CTRL, &ctrl);
1882 nbars = FIELD_GET(PCI_REBAR_CTRL_NBAR_MASK, ctrl);
1883
1884 for (i = 0; i < nbars; i++, pos += 8) {
1885 struct resource *res;
1886 int bar_idx, size;
1887
1888 pci_read_config_dword(pdev, pos + PCI_REBAR_CTRL, &ctrl);
1889 bar_idx = ctrl & PCI_REBAR_CTRL_BAR_IDX;
1890 total = pdev->sriov->total_VFs;
1891 if (!total)
1892 return;
1893
1894 res = pdev->resource + bar_idx + PCI_IOV_RESOURCES;
> 1895 size = pci_rebar_bytes_to_size(resource_size(res) / total);
1896 ctrl &= ~PCI_REBAR_CTRL_BAR_SIZE;
1897 ctrl |= FIELD_PREP(PCI_REBAR_CTRL_BAR_SIZE, size);
1898 pci_write_config_dword(pdev, pos + PCI_REBAR_CTRL, ctrl);
1899 }
1900 #endif
1901 }
1902

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki