aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2010-02-11 19:48:58 +0000
committerKeir Fraser <keir.fraser@citrix.com>2010-02-11 19:48:58 +0000
commit275c052dac52c397e933a01f80022e6472d5adf9 (patch)
treec03c73ec3db48d90853e08112bcdee08058714c7
parent0fd6ab35d13fe4127600467acba9f8c1db40aa00 (diff)
downloadxen-275c052dac52c397e933a01f80022e6472d5adf9.tar.gz
xen-275c052dac52c397e933a01f80022e6472d5adf9.tar.bz2
xen-275c052dac52c397e933a01f80022e6472d5adf9.zip
VT-d: ensure zapping ACPI DMAR signature in acpi_parse_dmar
VT-d is owned by Xen hypervisor. Xen zaps ACPI DMAR signature to prevent dom0 to use VT-d. This patch changes the direct return when DMAR width is zero, instead zaps ACPI DMAR signature before return. Signed-off-by: Weidong Han <weidong.han@intel.com>
-rw-r--r--xen/drivers/passthrough/vtd/dmar.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/xen/drivers/passthrough/vtd/dmar.c b/xen/drivers/passthrough/vtd/dmar.c
index 544d0115b8..5ed4877b1d 100644
--- a/xen/drivers/passthrough/vtd/dmar.c
+++ b/xen/drivers/passthrough/vtd/dmar.c
@@ -623,7 +623,8 @@ static int __init acpi_parse_dmar(struct acpi_table_header *table)
if ( !dmar->width )
{
dprintk(XENLOG_WARNING VTDPREFIX, "Zero: Invalid DMAR width\n");
- return -EINVAL;
+ ret = -EINVAL;
+ goto out;
}
dmar_host_address_width = dmar->width + 1;