]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
iommufd: Avoid duplicated __iommu_group_set_core_domain() call
authorYi Liu <yi.l.liu@intel.com>
Sun, 8 Sep 2024 11:42:55 +0000 (04:42 -0700)
committerJason Gunthorpe <jgg@nvidia.com>
Wed, 11 Sep 2024 23:14:07 +0000 (20:14 -0300)
For the fault-capable hwpts, the iommufd_hwpt_detach_device() calls both
iommufd_fault_domain_detach_dev() and iommu_detach_group(). This would have
duplicated __iommu_group_set_core_domain() call since both functions call
it in the end. This looks no harm as the __iommu_group_set_core_domain()
returns if the new domain equals to the existing one. But it makes sense to
avoid such duplicated calls in caller side.

Link: https://patch.msgid.link/r/20240908114256.979518-2-yi.l.liu@intel.com
Signed-off-by: Yi Liu <yi.l.liu@intel.com>
Reviewed-by: Lu Baolu <baolu.lu@linux.intel.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/iommu/iommufd/iommufd_private.h

index 5d3768d7709924d05464ad2c2c3c4e505fb31dcf..f1d865e6fab66a5eb5a7ae38d78d2a364c67f00e 100644 (file)
@@ -510,8 +510,10 @@ static inline int iommufd_hwpt_attach_device(struct iommufd_hw_pagetable *hwpt,
 static inline void iommufd_hwpt_detach_device(struct iommufd_hw_pagetable *hwpt,
                                              struct iommufd_device *idev)
 {
-       if (hwpt->fault)
+       if (hwpt->fault) {
                iommufd_fault_domain_detach_dev(hwpt, idev);
+               return;
+       }
 
        iommu_detach_group(hwpt->domain, idev->igroup->group);
 }