diff options
author | Robin Murphy <robin.murphy@arm.com> | 2022-06-21 17:14:26 +0200 |
---|---|---|
committer | Joerg Roedel <jroedel@suse.de> | 2022-07-06 12:55:53 +0200 |
commit | b321a2fba2734cbac799034081e20dcdb321ef4f (patch) | |
tree | b22d084945c6411de221e30b4aa972ef9fee1fc8 /drivers/iommu/iommu.c | |
parent | iommu: Use dev_iommu_ops() for probe_finalize (diff) | |
download | linux-b321a2fba2734cbac799034081e20dcdb321ef4f.tar.xz linux-b321a2fba2734cbac799034081e20dcdb321ef4f.zip |
iommu: Make .release_device optional
Many drivers do nothing meaningful for .release_device, and it's neatly
abstracted to just two callsites in the core code, so let's make it
optional to implement.
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Reviewed-by: Lu Baolu <baolu.lu@linux.intel.com>
Link: https://lore.kernel.org/r/bda9d3eb4527eac8f6544a15067e2529cca54a2e.1655822151.git.robin.murphy@arm.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Diffstat (limited to 'drivers/iommu/iommu.c')
-rw-r--r-- | drivers/iommu/iommu.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c index 862c3f61b7de..0aa141646bdf 100644 --- a/drivers/iommu/iommu.c +++ b/drivers/iommu/iommu.c @@ -259,7 +259,8 @@ static int __iommu_probe_device(struct device *dev, struct list_head *group_list return 0; out_release: - ops->release_device(dev); + if (ops->release_device) + ops->release_device(dev); out_module_put: module_put(ops->owner); @@ -337,7 +338,8 @@ void iommu_release_device(struct device *dev) iommu_device_unlink(dev->iommu->iommu_dev, dev); ops = dev_iommu_ops(dev); - ops->release_device(dev); + if (ops->release_device) + ops->release_device(dev); iommu_group_remove_device(dev); module_put(ops->owner); |