aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeir Fraser <keir@xen.org>2010-12-16 15:40:51 +0000
committerKeir Fraser <keir@xen.org>2010-12-16 15:40:51 +0000
commit3c38ca5cb12d49596e8b84efb78c7ddecc83b6bb (patch)
tree29aeabb39c50c34574b5470710b4d20a68e1cb8d
parente290721d5802b98f9f8217f69197cbac6daa75ac (diff)
downloadxen-3c38ca5cb12d49596e8b84efb78c7ddecc83b6bb.tar.gz
xen-3c38ca5cb12d49596e8b84efb78c7ddecc83b6bb.tar.bz2
xen-3c38ca5cb12d49596e8b84efb78c7ddecc83b6bb.zip
vtd: Require unmap_vtd_domain_page() on a couple of early exit paths.
From: Jan Beulich <JBeulich@novell.com> Signed-off-by: Keir Fraser <keir@xen.org> xen-unstable changeset: 22549:aa18b8ddaf05 xen-unstable date: Thu Dec 16 15:38:57 2010 +0000
-rw-r--r--xen/drivers/passthrough/vtd/iommu.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c
index c91f190c86..7bae0d4d2c 100644
--- a/xen/drivers/passthrough/vtd/iommu.c
+++ b/xen/drivers/passthrough/vtd/iommu.c
@@ -1300,6 +1300,7 @@ static int domain_context_mapping_one(
if ( context_set_domain_id(context, domain, iommu) )
{
spin_unlock(&iommu->lock);
+ unmap_vtd_domain_page(context_entries);
return -EFAULT;
}
@@ -1631,6 +1632,7 @@ static int intel_iommu_map_page(
if ( old.val == new.val )
{
spin_unlock(&hd->mapping_lock);
+ unmap_vtd_domain_page(page);
return 0;
}
*pte = new;