diff options
Diffstat (limited to 'drivers/iommu/iommu.c')
| -rw-r--r-- | drivers/iommu/iommu.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c index 169836020208..0639b9274b11 100644 --- a/drivers/iommu/iommu.c +++ b/drivers/iommu/iommu.c | |||
| @@ -678,15 +678,17 @@ static struct iommu_group *iommu_group_get_for_pci_dev(struct pci_dev *pdev) | |||
| 678 | */ | 678 | */ |
| 679 | struct iommu_group *iommu_group_get_for_dev(struct device *dev) | 679 | struct iommu_group *iommu_group_get_for_dev(struct device *dev) |
| 680 | { | 680 | { |
| 681 | struct iommu_group *group = ERR_PTR(-EIO); | 681 | struct iommu_group *group; |
| 682 | int ret; | 682 | int ret; |
| 683 | 683 | ||
| 684 | group = iommu_group_get(dev); | 684 | group = iommu_group_get(dev); |
| 685 | if (group) | 685 | if (group) |
| 686 | return group; | 686 | return group; |
| 687 | 687 | ||
| 688 | if (dev_is_pci(dev)) | 688 | if (!dev_is_pci(dev)) |
| 689 | group = iommu_group_get_for_pci_dev(to_pci_dev(dev)); | 689 | return ERR_PTR(-EINVAL); |
| 690 | |||
| 691 | group = iommu_group_get_for_pci_dev(to_pci_dev(dev)); | ||
| 690 | 692 | ||
| 691 | if (IS_ERR(group)) | 693 | if (IS_ERR(group)) |
| 692 | return group; | 694 | return group; |
| @@ -995,7 +997,7 @@ int iommu_map(struct iommu_domain *domain, unsigned long iova, | |||
| 995 | size_t orig_size = size; | 997 | size_t orig_size = size; |
| 996 | int ret = 0; | 998 | int ret = 0; |
| 997 | 999 | ||
| 998 | if (unlikely(domain->ops->unmap == NULL || | 1000 | if (unlikely(domain->ops->map == NULL || |
| 999 | domain->ops->pgsize_bitmap == 0UL)) | 1001 | domain->ops->pgsize_bitmap == 0UL)) |
| 1000 | return -ENODEV; | 1002 | return -ENODEV; |
| 1001 | 1003 | ||
