diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/iommu/intel-iommu.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c index 68d43beccb7e..2ffe58969944 100644 --- a/drivers/iommu/intel-iommu.c +++ b/drivers/iommu/intel-iommu.c | |||
| @@ -696,6 +696,11 @@ static inline struct context_entry *iommu_context_addr(struct intel_iommu *iommu | |||
| 696 | return &context[devfn]; | 696 | return &context[devfn]; |
| 697 | } | 697 | } |
| 698 | 698 | ||
| 699 | static int iommu_dummy(struct device *dev) | ||
| 700 | { | ||
| 701 | return dev->archdata.iommu == DUMMY_DEVICE_DOMAIN_INFO; | ||
| 702 | } | ||
| 703 | |||
| 699 | static struct intel_iommu *device_to_iommu(struct device *dev, u8 *bus, u8 *devfn) | 704 | static struct intel_iommu *device_to_iommu(struct device *dev, u8 *bus, u8 *devfn) |
| 700 | { | 705 | { |
| 701 | struct dmar_drhd_unit *drhd = NULL; | 706 | struct dmar_drhd_unit *drhd = NULL; |
| @@ -705,6 +710,9 @@ static struct intel_iommu *device_to_iommu(struct device *dev, u8 *bus, u8 *devf | |||
| 705 | u16 segment = 0; | 710 | u16 segment = 0; |
| 706 | int i; | 711 | int i; |
| 707 | 712 | ||
| 713 | if (iommu_dummy(dev)) | ||
| 714 | return NULL; | ||
| 715 | |||
| 708 | if (dev_is_pci(dev)) { | 716 | if (dev_is_pci(dev)) { |
| 709 | pdev = to_pci_dev(dev); | 717 | pdev = to_pci_dev(dev); |
| 710 | segment = pci_domain_nr(pdev->bus); | 718 | segment = pci_domain_nr(pdev->bus); |
| @@ -2969,11 +2977,6 @@ static inline struct dmar_domain *get_valid_domain_for_dev(struct device *dev) | |||
| 2969 | return __get_valid_domain_for_dev(dev); | 2977 | return __get_valid_domain_for_dev(dev); |
| 2970 | } | 2978 | } |
| 2971 | 2979 | ||
| 2972 | static int iommu_dummy(struct device *dev) | ||
| 2973 | { | ||
| 2974 | return dev->archdata.iommu == DUMMY_DEVICE_DOMAIN_INFO; | ||
| 2975 | } | ||
| 2976 | |||
| 2977 | /* Check if the dev needs to go through non-identity map and unmap process.*/ | 2980 | /* Check if the dev needs to go through non-identity map and unmap process.*/ |
| 2978 | static int iommu_no_mapping(struct device *dev) | 2981 | static int iommu_no_mapping(struct device *dev) |
| 2979 | { | 2982 | { |
