diff options
author | Joerg Roedel <joerg.roedel@amd.com> | 2010-03-08 08:20:07 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2010-04-26 10:47:56 -0400 |
commit | 78b124998ce07bb27cf23bd6d1a7337ba22cb262 (patch) | |
tree | 424261495fb77f2dea1d2c5ea7899102f9ba8166 | |
parent | 544e6619c3b8339698c96a05d26016013454e654 (diff) |
x86/amd-iommu: Use helper function to destroy domain
commit 8b408fe4f853dcfa18d133aa4cf1d7546b4c3870 upstream.
In the amd_iommu_domain_destroy the protection_domain_free
function is partly reimplemented. The 'partly' is the bug
here because the domain is not deleted from the domain list.
This results in use-after-free errors and data-corruption.
Fix it by just using protection_domain_free instead.
Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
-rw-r--r-- | arch/x86/kernel/amd_iommu.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/arch/x86/kernel/amd_iommu.c b/arch/x86/kernel/amd_iommu.c index 0e9ab4af619b..2e775169bdf0 100644 --- a/arch/x86/kernel/amd_iommu.c +++ b/arch/x86/kernel/amd_iommu.c | |||
@@ -2379,9 +2379,7 @@ static void amd_iommu_domain_destroy(struct iommu_domain *dom) | |||
2379 | 2379 | ||
2380 | free_pagetable(domain); | 2380 | free_pagetable(domain); |
2381 | 2381 | ||
2382 | domain_id_free(domain->id); | 2382 | protection_domain_free(domain); |
2383 | |||
2384 | kfree(domain); | ||
2385 | 2383 | ||
2386 | dom->priv = NULL; | 2384 | dom->priv = NULL; |
2387 | } | 2385 | } |