linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [pci:pci/host-vmd 7/7] drivers/iommu/intel-iommu.c:906:7: error: implicit declaration of function 'is_vmd'
@ 2017-08-30 19:53 kbuild test robot
  2017-08-30 20:00 ` Bjorn Helgaas
  0 siblings, 1 reply; 2+ messages in thread
From: kbuild test robot @ 2017-08-30 19:53 UTC (permalink / raw)
  To: Jon Derrick; +Cc: kbuild-all, linux-pci, Bjorn Helgaas

[-- Attachment #1: Type: text/plain, Size: 3439 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git pci/host-vmd
head:   155f39b4552f5ea5f6d0a4c7d942445369c32b08
commit: 155f39b4552f5ea5f6d0a4c7d942445369c32b08 [7/7] iommu/vt-d: Prevent VMD child devices from being remapping targets
config: ia64-allmodconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 6.2.0
reproduce:
        wget https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout 155f39b4552f5ea5f6d0a4c7d942445369c32b08
        # save the attached .config to linux build tree
        make.cross ARCH=ia64 

All errors (new ones prefixed by >>):

   drivers/iommu/intel-iommu.c: In function 'device_to_iommu':
>> drivers/iommu/intel-iommu.c:906:7: error: implicit declaration of function 'is_vmd' [-Werror=implicit-function-declaration]
      if (is_vmd(pdev->bus))
          ^~~~~~
   cc1: some warnings being treated as errors

vim +/is_vmd +906 drivers/iommu/intel-iommu.c

   887	
   888	static struct intel_iommu *device_to_iommu(struct device *dev, u8 *bus, u8 *devfn)
   889	{
   890		struct dmar_drhd_unit *drhd = NULL;
   891		struct intel_iommu *iommu;
   892		struct device *tmp;
   893		struct pci_dev *ptmp, *pdev = NULL;
   894		u16 segment = 0;
   895		int i;
   896	
   897		if (iommu_dummy(dev))
   898			return NULL;
   899	
   900		if (dev_is_pci(dev)) {
   901			struct pci_dev *pf_pdev;
   902	
   903			pdev = to_pci_dev(dev);
   904	
   905			/* VMD child devices currently cannot be handled individually */
 > 906			if (is_vmd(pdev->bus))
   907				return NULL;
   908	
   909			/* VFs aren't listed in scope tables; we need to look up
   910			 * the PF instead to find the IOMMU. */
   911			pf_pdev = pci_physfn(pdev);
   912			dev = &pf_pdev->dev;
   913			segment = pci_domain_nr(pdev->bus);
   914		} else if (has_acpi_companion(dev))
   915			dev = &ACPI_COMPANION(dev)->dev;
   916	
   917		rcu_read_lock();
   918		for_each_active_iommu(iommu, drhd) {
   919			if (pdev && segment != drhd->segment)
   920				continue;
   921	
   922			for_each_active_dev_scope(drhd->devices,
   923						  drhd->devices_cnt, i, tmp) {
   924				if (tmp == dev) {
   925					/* For a VF use its original BDF# not that of the PF
   926					 * which we used for the IOMMU lookup. Strictly speaking
   927					 * we could do this for all PCI devices; we only need to
   928					 * get the BDF# from the scope table for ACPI matches. */
   929					if (pdev && pdev->is_virtfn)
   930						goto got_pdev;
   931	
   932					*bus = drhd->devices[i].bus;
   933					*devfn = drhd->devices[i].devfn;
   934					goto out;
   935				}
   936	
   937				if (!pdev || !dev_is_pci(tmp))
   938					continue;
   939	
   940				ptmp = to_pci_dev(tmp);
   941				if (ptmp->subordinate &&
   942				    ptmp->subordinate->number <= pdev->bus->number &&
   943				    ptmp->subordinate->busn_res.end >= pdev->bus->number)
   944					goto got_pdev;
   945			}
   946	
   947			if (pdev && drhd->include_all) {
   948			got_pdev:
   949				*bus = pdev->bus->number;
   950				*devfn = pdev->devfn;
   951				goto out;
   952			}
   953		}
   954		iommu = NULL;
   955	 out:
   956		rcu_read_unlock();
   957	
   958		return iommu;
   959	}
   960	

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

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 48394 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [pci:pci/host-vmd 7/7] drivers/iommu/intel-iommu.c:906:7: error: implicit declaration of function 'is_vmd'
  2017-08-30 19:53 [pci:pci/host-vmd 7/7] drivers/iommu/intel-iommu.c:906:7: error: implicit declaration of function 'is_vmd' kbuild test robot
@ 2017-08-30 20:00 ` Bjorn Helgaas
  0 siblings, 0 replies; 2+ messages in thread
From: Bjorn Helgaas @ 2017-08-30 20:00 UTC (permalink / raw)
  To: kbuild test robot; +Cc: Jon Derrick, kbuild-all, linux-pci, Bjorn Helgaas

[-- Attachment #1: Type: text/plain, Size: 4784 bytes --]

On Wed, Aug 30, 2017 at 2:53 PM, kbuild test robot <fengguang.wu@intel.com>
wrote:
>
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git
pci/host-vmd
> head:   155f39b4552f5ea5f6d0a4c7d942445369c32b08
> commit: 155f39b4552f5ea5f6d0a4c7d942445369c32b08 [7/7] iommu/vt-d:
Prevent VMD child devices from being remapping targets
> config: ia64-allmodconfig (attached as .config)
> compiler: ia64-linux-gcc (GCC) 6.2.0
> reproduce:
>         wget
https://raw.githubusercontent.com/01org/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
>         chmod +x ~/bin/make.cross
>         git checkout 155f39b4552f5ea5f6d0a4c7d942445369c32b08
>         # save the attached .config to linux build tree
>         make.cross ARCH=ia64
>
> All errors (new ones prefixed by >>):
>
>    drivers/iommu/intel-iommu.c: In function 'device_to_iommu':
> >> drivers/iommu/intel-iommu.c:906:7: error: implicit declaration of
function 'is_vmd' [-Werror=implicit-function-declaration]
>       if (is_vmd(pdev->bus))
>           ^~~~~~
>    cc1: some warnings being treated as errors

Oops, is_vmd() isn't defined for ia64.  I dropped this last patch for now.

> vim +/is_vmd +906 drivers/iommu/intel-iommu.c
>
>    887
>    888  static struct intel_iommu *device_to_iommu(struct device *dev, u8
*bus, u8 *devfn)
>    889  {
>    890          struct dmar_drhd_unit *drhd = NULL;
>    891          struct intel_iommu *iommu;
>    892          struct device *tmp;
>    893          struct pci_dev *ptmp, *pdev = NULL;
>    894          u16 segment = 0;
>    895          int i;
>    896
>    897          if (iommu_dummy(dev))
>    898                  return NULL;
>    899
>    900          if (dev_is_pci(dev)) {
>    901                  struct pci_dev *pf_pdev;
>    902
>    903                  pdev = to_pci_dev(dev);
>    904
>    905                  /* VMD child devices currently cannot be handled
individually */
>  > 906                  if (is_vmd(pdev->bus))
>    907                          return NULL;
>    908
>    909                  /* VFs aren't listed in scope tables; we need to
look up
>    910                   * the PF instead to find the IOMMU. */
>    911                  pf_pdev = pci_physfn(pdev);
>    912                  dev = &pf_pdev->dev;
>    913                  segment = pci_domain_nr(pdev->bus);
>    914          } else if (has_acpi_companion(dev))
>    915                  dev = &ACPI_COMPANION(dev)->dev;
>    916
>    917          rcu_read_lock();
>    918          for_each_active_iommu(iommu, drhd) {
>    919                  if (pdev && segment != drhd->segment)
>    920                          continue;
>    921
>    922                  for_each_active_dev_scope(drhd->devices,
>    923                                            drhd->devices_cnt, i,
tmp) {
>    924                          if (tmp == dev) {
>    925                                  /* For a VF use its original BDF#
not that of the PF
>    926                                   * which we used for the IOMMU
lookup. Strictly speaking
>    927                                   * we could do this for all PCI
devices; we only need to
>    928                                   * get the BDF# from the scope
table for ACPI matches. */
>    929                                  if (pdev && pdev->is_virtfn)
>    930                                          goto got_pdev;
>    931
>    932                                  *bus = drhd->devices[i].bus;
>    933                                  *devfn = drhd->devices[i].devfn;
>    934                                  goto out;
>    935                          }
>    936
>    937                          if (!pdev || !dev_is_pci(tmp))
>    938                                  continue;
>    939
>    940                          ptmp = to_pci_dev(tmp);
>    941                          if (ptmp->subordinate &&
>    942                              ptmp->subordinate->number <=
pdev->bus->number &&
>    943                              ptmp->subordinate->busn_res.end >=
pdev->bus->number)
>    944                                  goto got_pdev;
>    945                  }
>    946
>    947                  if (pdev && drhd->include_all) {
>    948                  got_pdev:
>    949                          *bus = pdev->bus->number;
>    950                          *devfn = pdev->devfn;
>    951                          goto out;
>    952                  }
>    953          }
>    954          iommu = NULL;
>    955   out:
>    956          rcu_read_unlock();
>    957
>    958          return iommu;
>    959  }
>    960
>
> ---
> 0-DAY kernel test infrastructure                Open Source Technology
Center
> https://lists.01.org/pipermail/kbuild-all                   Intel
Corporation

[-- Attachment #2: Type: text/html, Size: 6688 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-08-30 20:00 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-08-30 19:53 [pci:pci/host-vmd 7/7] drivers/iommu/intel-iommu.c:906:7: error: implicit declaration of function 'is_vmd' kbuild test robot
2017-08-30 20:00 ` Bjorn Helgaas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).