aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorJoerg Roedel <joerg.roedel@amd.com>2008-12-02 18:34:12 +0100
committerJoerg Roedel <joerg.roedel@amd.com>2009-01-03 14:11:55 +0100
commit98383fc301c6546af0f3a8a1d3cb8bf218f7e940 (patch)
treec376128da8396b1177996c60c63c1cc86aaf8458 /arch
parentAMD IOMMU: add domain init function for IOMMU API (diff)
downloadlinux-dev-98383fc301c6546af0f3a8a1d3cb8bf218f7e940.tar.xz
linux-dev-98383fc301c6546af0f3a8a1d3cb8bf218f7e940.zip
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')
-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:
return -ENOMEM;
}
+static void amd_iommu_domain_destroy(struct iommu_domain *dom)
+{
+ struct protection_domain *domain = dom->priv;
+
+ if (!domain)
+ return;
+
+ if (domain->dev_cnt > 0)
+ cleanup_domain(domain);
+
+ BUG_ON(domain->dev_cnt != 0);
+
+ free_pagetable(domain);
+
+ domain_id_free(domain->id);
+
+ kfree(domain);
+
+ dom->priv = NULL;
+}
+
#endif