Skip to content

Commit

Permalink
iommu/amd: Consolidate protection domain free code
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Vasant Hegde authored and Joerg Roedel committed Mar 10, 2025
1 parent 5536e19 commit 6255868
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 12 deletions.
1 change: 0 additions & 1 deletion drivers/iommu/amd/amd_iommu.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
15 changes: 5 additions & 10 deletions drivers/iommu/amd/iommu.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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,
Expand Down
2 changes: 1 addition & 1 deletion drivers/iommu/amd/pasid.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

Expand Down

0 comments on commit 6255868

Please sign in to comment.