Hi Emil,

[auto build test ERROR on pci/next]
[also build test ERROR on v4.10-rc2 next-20170104]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:    
https://github.com/0day-ci/linux/commits/Emil-Tantilov/PCI-introduce-locked-pci_add-remove_virtfn/20170104-193518
base:   https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git next
config: powerpc-defconfig (attached as .config)
compiler: powerpc64-linux-gnu-gcc (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
        wget 
https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross
 -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=powerpc 

All errors (new ones prefixed by >>):

   arch/powerpc/kernel/eeh_driver.c: In function 'eeh_add_virt_device':
>> arch/powerpc/kernel/eeh_driver.c:444:2: error: implicit declaration of 
>> function 'pci_iov_add_virtfn_locked' [-Werror=implicit-function-declaration]
     pci_iov_add_virtfn_locked(edev->physfn, pdn->vf_index, 0);
     ^~~~~~~~~~~~~~~~~~~~~~~~~
   arch/powerpc/kernel/eeh_driver.c: In function 'eeh_rmv_device':
>> arch/powerpc/kernel/eeh_driver.c:502:3: error: implicit declaration of 
>> function 'pci_iov_remove_virtfn_locked' 
>> [-Werror=implicit-function-declaration]
      pci_iov_remove_virtfn_locked(edev->physfn, pdn->vf_index, 0);
      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   cc1: all warnings being treated as errors

vim +/pci_iov_add_virtfn_locked +444 arch/powerpc/kernel/eeh_driver.c

   438                  eeh_pcid_put(dev);
   439                  if (driver->err_handler)
   440                          return NULL;
   441          }
   442  
   443  #ifdef CONFIG_PPC_POWERNV
 > 444          pci_iov_add_virtfn_locked(edev->physfn, pdn->vf_index, 0);
   445  #endif
   446          return NULL;
   447  }
   448  
   449  static void *eeh_rmv_device(void *data, void *userdata)
   450  {
   451          struct pci_driver *driver;
   452          struct eeh_dev *edev = (struct eeh_dev *)data;
   453          struct pci_dev *dev = eeh_dev_to_pci_dev(edev);
   454          struct eeh_rmv_data *rmv_data = (struct eeh_rmv_data *)userdata;
   455          int *removed = rmv_data ? &rmv_data->removed : NULL;
   456  
   457          /*
   458           * Actually, we should remove the PCI bridges as well.
   459           * However, that's lots of complexity to do that,
   460           * particularly some of devices under the bridge might
   461           * support EEH. So we just care about PCI devices for
   462           * simplicity here.
   463           */
   464          if (!dev || (dev->hdr_type == PCI_HEADER_TYPE_BRIDGE))
   465                  return NULL;
   466  
   467          /*
   468           * We rely on count-based pcibios_release_device() to
   469           * detach permanently offlined PEs. Unfortunately, that's
   470           * not reliable enough. We might have the permanently
   471           * offlined PEs attached, but we needn't take care of
   472           * them and their child devices.
   473           */
   474          if (eeh_dev_removed(edev))
   475                  return NULL;
   476  
   477          driver = eeh_pcid_get(dev);
   478          if (driver) {
   479                  eeh_pcid_put(dev);
   480                  if (removed &&
   481                      eeh_pe_passed(edev->pe))
   482                          return NULL;
   483                  if (removed &&
   484                      driver->err_handler &&
   485                      driver->err_handler->error_detected &&
   486                      driver->err_handler->slot_reset)
   487                          return NULL;
   488          }
   489  
   490          /* Remove it from PCI subsystem */
   491          pr_debug("EEH: Removing %s without EEH sensitive driver\n",
   492                   pci_name(dev));
   493          edev->bus = dev->bus;
   494          edev->mode |= EEH_DEV_DISCONNECTED;
   495          if (removed)
   496                  (*removed)++;
   497  
   498          if (edev->physfn) {
   499  #ifdef CONFIG_PPC_POWERNV
   500                  struct pci_dn *pdn = eeh_dev_to_pdn(edev);
   501  
 > 502                  pci_iov_remove_virtfn_locked(edev->physfn, 
 > pdn->vf_index, 0);
   503                  edev->pdev = NULL;
   504  
   505                  /*

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip

Reply via email to