+10
-3
drivers/iommu/intel-iommu.c
+10
-3
drivers/iommu/intel-iommu.c
···
5624
5625
group = iommu_group_get_for_dev(dev);
5626
5627
-
if (IS_ERR(group))
5628
-
return PTR_ERR(group);
5629
5630
iommu_group_put(group);
5631
···
5653
if (!get_private_domain_for_dev(dev)) {
5654
dev_warn(dev,
5655
"Failed to get a private domain.\n");
5656
-
return -ENOMEM;
5657
}
5658
5659
dev_info(dev,
···
5669
}
5670
5671
return 0;
5672
}
5673
5674
static void intel_iommu_remove_device(struct device *dev)
···
5624
5625
group = iommu_group_get_for_dev(dev);
5626
5627
+
if (IS_ERR(group)) {
5628
+
ret = PTR_ERR(group);
5629
+
goto unlink;
5630
+
}
5631
5632
iommu_group_put(group);
5633
···
5651
if (!get_private_domain_for_dev(dev)) {
5652
dev_warn(dev,
5653
"Failed to get a private domain.\n");
5654
+
ret = -ENOMEM;
5655
+
goto unlink;
5656
}
5657
5658
dev_info(dev,
···
5666
}
5667
5668
return 0;
5669
+
5670
+
unlink:
5671
+
iommu_device_unlink(&iommu->iommu, dev);
5672
+
return ret;
5673
}
5674
5675
static void intel_iommu_remove_device(struct device *dev)