]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
iommu/amd: Consolidate protection domain free code
authorVasant Hegde <vasant.hegde@amd.com>
Thu, 27 Feb 2025 16:23:20 +0000 (16:23 +0000)
committerJoerg Roedel <jroedel@suse.de>
Mon, 10 Mar 2025 08:27:11 +0000 (09:27 +0100)
Consolidate protection domain free code inside amd_iommu_domain_free()
and remove protection_domain_free() function.

Signed-off-by: Vasant Hegde <vasant.hegde@amd.com>
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Link: https://lore.kernel.org/r/20250227162320.5805-8-vasant.hegde@amd.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/amd/amd_iommu.h
drivers/iommu/amd/iommu.c
drivers/iommu/amd/pasid.c

index e3bf27da1339e330288966e20930d88d846de64a..220c598b7e1486fe0f0b78aa4c8bd090194b3e57 100644 (file)
@@ -47,7 +47,6 @@ extern unsigned long amd_iommu_pgsize_bitmap;
 /* Protection domain ops */
 void amd_iommu_init_identity_domain(void);
 struct protection_domain *protection_domain_alloc(void);
-void protection_domain_free(struct protection_domain *domain);
 struct iommu_domain *amd_iommu_domain_alloc_sva(struct device *dev,
                                                struct mm_struct *mm);
 void amd_iommu_domain_free(struct iommu_domain *dom);
index 797c8612966a918d3aeae4daddda3c150d0b357e..534585ea09396f449d2c7704c04cca6fbf200131 100644 (file)
@@ -2434,15 +2434,6 @@ static struct iommu_group *amd_iommu_device_group(struct device *dev)
  *
  *****************************************************************************/
 
-void protection_domain_free(struct protection_domain *domain)
-{
-       WARN_ON(!list_empty(&domain->dev_list));
-       if (domain->domain.type & __IOMMU_DOMAIN_PAGING)
-               free_io_pgtable_ops(&domain->iop.pgtbl.ops);
-       pdom_id_free(domain->id);
-       kfree(domain);
-}
-
 static void protection_domain_init(struct protection_domain *domain)
 {
        spin_lock_init(&domain->lock);
@@ -2580,7 +2571,11 @@ void amd_iommu_domain_free(struct iommu_domain *dom)
 {
        struct protection_domain *domain = to_pdomain(dom);
 
-       protection_domain_free(domain);
+       WARN_ON(!list_empty(&domain->dev_list));
+       if (domain->domain.type & __IOMMU_DOMAIN_PAGING)
+               free_io_pgtable_ops(&domain->iop.pgtbl.ops);
+       pdom_id_free(domain->id);
+       kfree(domain);
 }
 
 static int blocked_domain_attach_device(struct iommu_domain *domain,
index 11150cfd67182daae40ad9e5ea1681eb412db7cd..77c8e9a91cbca5b32c10dac27dabded43e686051 100644 (file)
@@ -195,7 +195,7 @@ struct iommu_domain *amd_iommu_domain_alloc_sva(struct device *dev,
 
        ret = mmu_notifier_register(&pdom->mn, mm);
        if (ret) {
-               protection_domain_free(pdom);
+               amd_iommu_domain_free(&pdom->domain);
                return ERR_PTR(ret);
        }