Skip to content

Commit

Permalink
AMD IOMMU: make dma_ops_free_pagetable generic
Browse files Browse the repository at this point in the history
Impact: change code to free pagetables from protection domains

The dma_ops_free_pagetable function can only free pagetables from
dma_ops domains. Change that to free pagetables of pure protection
domains.

Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
  • Loading branch information
Joerg Roedel committed Jan 3, 2009
1 parent 38e817f commit 86db2e5
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions arch/x86/kernel/amd_iommu.c
Original file line number Diff line number Diff line change
Expand Up @@ -587,12 +587,12 @@ static void dma_ops_reserve_addresses(struct dma_ops_domain *dom,
iommu_area_reserve(dom->bitmap, start_page, pages);
}

static void dma_ops_free_pagetable(struct dma_ops_domain *dma_dom)
static void free_pagetable(struct protection_domain *domain)
{
int i, j;
u64 *p1, *p2, *p3;

p1 = dma_dom->domain.pt_root;
p1 = domain->pt_root;

if (!p1)
return;
Expand All @@ -613,6 +613,8 @@ static void dma_ops_free_pagetable(struct dma_ops_domain *dma_dom)
}

free_page((unsigned long)p1);

domain->pt_root = NULL;
}

/*
Expand All @@ -624,7 +626,7 @@ static void dma_ops_domain_free(struct dma_ops_domain *dom)
if (!dom)
return;

dma_ops_free_pagetable(dom);
free_pagetable(&dom->domain);

kfree(dom->pte_pages);

Expand Down

0 comments on commit 86db2e5

Please sign in to comment.