iommu/amd: Test for PAGING domains before freeing a domain
This domain free function can be called for IDENTITY and SVA domains too,
and they don't have page tables. For now protect against this by checking
the type. Eventually the different types should have their own free
functions.
Fixes: 485534bfcc ("iommu/amd: Remove conditions from domain free paths")
Reported-by: Vasant Hegde <vasant.hegde@amd.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Reviewed-by: Vasant Hegde <vasant.hegde@amd.com>
Link: https://lore.kernel.org/r/0-v1-ad9884ee5f5b+da-amd_iopgtbl_fix_jgg@nvidia.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
This commit is contained in:
committed by
Joerg Roedel
parent
f0295913c4
commit
3ab9d8d1b5
@@ -2254,7 +2254,8 @@ static void cleanup_domain(struct protection_domain *domain)
|
||||
void protection_domain_free(struct protection_domain *domain)
|
||||
{
|
||||
WARN_ON(!list_empty(&domain->dev_list));
|
||||
free_io_pgtable_ops(&domain->iop.pgtbl.ops);
|
||||
if (domain->domain.type & __IOMMU_DOMAIN_PAGING)
|
||||
free_io_pgtable_ops(&domain->iop.pgtbl.ops);
|
||||
domain_id_free(domain->id);
|
||||
kfree(domain);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user