]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
iommu/vt-d: Remove VMD child device sanity check
authorJon Derrick <jonathan.derrick@intel.com>
Tue, 21 Jan 2020 13:37:49 +0000 (06:37 -0700)
committerBjorn Helgaas <bhelgaas@google.com>
Fri, 24 Jan 2020 20:58:45 +0000 (14:58 -0600)
Remove the sanity check required for VMD child devices.  The new
pci_real_dma_dev() DMA alias mechanism places them in the same IOMMU group
as the VMD endpoint.  Assignment of the group would require assigning the
VMD endpoint, where unbinding the VMD endpoint removes the child device
domain from the hierarchy.

Link: https://lore.kernel.org/r/1579613871-301529-6-git-send-email-jonathan.derrick@intel.com
Signed-off-by: Jon Derrick <jonathan.derrick@intel.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Lu Baolu <baolu.lu@linux.intel.com>
drivers/iommu/intel-iommu.c

index 72f26e828124219e5ce9d1ead83a8abe2519d02d..7e2c492f314faa6a59f19c1d5130daa56f0cc467 100644 (file)
@@ -774,15 +774,7 @@ static struct intel_iommu *device_to_iommu(struct device *dev, u8 *bus, u8 *devf
        if (dev_is_pci(dev)) {
                struct pci_dev *pf_pdev;
 
-               pdev = to_pci_dev(dev);
-
-#ifdef CONFIG_X86
-               /* VMD child devices currently cannot be handled individually */
-               if (is_vmd(pdev->bus))
-                       return NULL;
-#endif
-
-               pdev = pci_real_dma_dev(pdev);
+               pdev = pci_real_dma_dev(to_pci_dev(dev));
 
                /* VFs aren't listed in scope tables; we need to look up
                 * the PF instead to find the IOMMU. */