Hi Heiner, I love your patch! Yet something to improve: [auto build test ERROR on pci/next] [also build test ERROR on v5.12 next-20210430] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Heiner-Kallweit/PCI-VPD-Use-unaligned-access-helpers-in-pci_vpd_read/20210501-214553 base: https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git next config: powerpc-randconfig-r012-20210501 (attached as .config) compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 8f5a2a5836cc8e4c1def2bdeb022e7b496623439) 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 powerpc cross compiling tool for clang build # apt-get install binutils-powerpc-linux-gnu # https://github.com/0day-ci/linux/commit/3115b0380e42b10762f7eee96f10b5a02cb4d2d5 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Heiner-Kallweit/PCI-VPD-Use-unaligned-access-helpers-in-pci_vpd_read/20210501-214553 git checkout 3115b0380e42b10762f7eee96f10b5a02cb4d2d5 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 ARCH=powerpc If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> All errors (new ones prefixed by >>): >> drivers/pci/vpd.c:224:4: error: implicit declaration of function 'put_unaligned_le32' [-Werror,-Wimplicit-function-declaration] put_unaligned_le32(val, buf); ^ drivers/pci/vpd.c:228:4: error: implicit declaration of function 'put_unaligned_le32' [-Werror,-Wimplicit-function-declaration] put_unaligned_le32(val, tmpbuf); ^ 2 errors generated. vim +/put_unaligned_le32 +224 drivers/pci/vpd.c 168 169 static ssize_t pci_vpd_read(struct pci_dev *dev, loff_t pos, size_t count, 170 void *buf) 171 { 172 struct pci_vpd *vpd = dev->vpd; 173 int ret; 174 loff_t end = pos + count; 175 176 if (pos < 0) 177 return -EINVAL; 178 179 if (!vpd->valid) { 180 vpd->valid = 1; 181 vpd->len = pci_vpd_size(dev, vpd->len); 182 } 183 184 if (vpd->len == 0) 185 return -EIO; 186 187 if (pos > vpd->len) 188 return 0; 189 190 if (end > vpd->len) { 191 end = vpd->len; 192 count = end - pos; 193 } 194 195 if (mutex_lock_killable(&vpd->lock)) 196 return -EINTR; 197 198 ret = pci_vpd_wait(dev); 199 if (ret < 0) 200 goto out; 201 202 while (pos < end) { 203 unsigned int len, skip; 204 u32 val; 205 206 ret = pci_user_write_config_word(dev, vpd->cap + PCI_VPD_ADDR, 207 pos & ~3); 208 if (ret < 0) 209 break; 210 vpd->busy = 1; 211 vpd->flag = PCI_VPD_ADDR_F; 212 ret = pci_vpd_wait(dev); 213 if (ret < 0) 214 break; 215 216 ret = pci_user_read_config_dword(dev, vpd->cap + PCI_VPD_DATA, &val); 217 if (ret < 0) 218 break; 219 220 skip = pos & 3; 221 len = min_t(unsigned int, 4 - skip, end - pos); 222 223 if (len == 4) { > 224 put_unaligned_le32(val, buf); 225 } else { 226 u8 tmpbuf[4]; 227 228 put_unaligned_le32(val, tmpbuf); 229 memcpy(buf, tmpbuf + skip, len); 230 } 231 232 buf += len; 233 pos += len; 234 } 235 out: 236 mutex_unlock(&vpd->lock); 237 return ret ? ret : count; 238 } 239 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip