intel-iommu: Add iommu_should_identity_map() function
authorDavid Woodhouse <David.Woodhouse@intel.com>
Sat, 4 Jul 2009 09:55:41 +0000 (10:55 +0100)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Sat, 4 Jul 2009 09:55:41 +0000 (10:55 +0100)
We do this twice, and it's about to get more complicated. This makes the
code slightly clearer about what it's doing, too.

Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/pci/intel-iommu.c

index 73a5c71dd37d6ff8f4efd73948fef230356e13e7..ae5ccdf8b19f1b9985d760f92ef7967193a6b2d6 100644 (file)
@@ -2442,6 +2442,11 @@ static int iommu_dummy(struct pci_dev *pdev)
        return pdev->dev.archdata.iommu == DUMMY_DEVICE_DOMAIN_INFO;
 }
 
+static int iommu_should_identity_map(struct pci_dev *pdev)
+{
+       return pdev->dma_mask > DMA_BIT_MASK(32);
+}
+
 /* Check if the pdev needs to go through non-identity map and unmap process.*/
 static int iommu_no_mapping(struct pci_dev *pdev)
 {
@@ -2455,7 +2460,7 @@ static int iommu_no_mapping(struct pci_dev *pdev)
 
        found = identity_mapping(pdev);
        if (found) {
-               if (pdev->dma_mask > DMA_BIT_MASK(32))
+               if (iommu_should_identity_map(pdev))
                        return 1;
                else {
                        /*
@@ -2472,7 +2477,7 @@ static int iommu_no_mapping(struct pci_dev *pdev)
                 * In case of a detached 64 bit DMA device from vm, the device
                 * is put into si_domain for identity mapping.
                 */
-               if (pdev->dma_mask > DMA_BIT_MASK(32)) {
+               if (iommu_should_identity_map(pdev)) {
                        int ret;
                        ret = domain_add_dev_info(si_domain, pdev);
                        if (ret)