aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/amd_iommu.c
diff options
context:
space:
mode:
authorJoerg Roedel <joerg.roedel@amd.com>2008-12-02 12:34:12 -0500
committerJoerg Roedel <joerg.roedel@amd.com>2009-01-03 08:11:55 -0500
commit98383fc301c6546af0f3a8a1d3cb8bf218f7e940 (patch)
treec376128da8396b1177996c60c63c1cc86aaf8458 /arch/x86/kernel/amd_iommu.c
parentc156e347d6d3c36b6843c3b168eda61b9a02c827 (diff)
AMD IOMMU: add domain destroy function for IOMMU API
Impact: add a generic function for releasing protection domains Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Diffstat (limited to 'arch/x86/kernel/amd_iommu.c')
-rw-r--r--arch/x86/kernel/amd_iommu.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/arch/x86/kernel/amd_iommu.c b/arch/x86/kernel/amd_iommu.c
index 6c0bd49cee5f..891d713d9c96 100644
--- a/arch/x86/kernel/amd_iommu.c
+++ b/arch/x86/kernel/amd_iommu.c
@@ -1636,4 +1636,25 @@ out_free:
1636 return -ENOMEM; 1636 return -ENOMEM;
1637} 1637}
1638 1638
1639static void amd_iommu_domain_destroy(struct iommu_domain *dom)
1640{
1641 struct protection_domain *domain = dom->priv;
1642
1643 if (!domain)
1644 return;
1645
1646 if (domain->dev_cnt > 0)
1647 cleanup_domain(domain);
1648
1649 BUG_ON(domain->dev_cnt != 0);
1650
1651 free_pagetable(domain);
1652
1653 domain_id_free(domain->id);
1654
1655 kfree(domain);
1656
1657 dom->priv = NULL;
1658}
1659
1639#endif 1660#endif