diff options
author | Keir Fraser <keir.fraser@citrix.com> | 2010-02-11 19:48:58 +0000 |
---|---|---|
committer | Keir Fraser <keir.fraser@citrix.com> | 2010-02-11 19:48:58 +0000 |
commit | 275c052dac52c397e933a01f80022e6472d5adf9 (patch) | |
tree | c03c73ec3db48d90853e08112bcdee08058714c7 | |
parent | 0fd6ab35d13fe4127600467acba9f8c1db40aa00 (diff) | |
download | xen-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.c | 3 |
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; |