From 9990231d0d5abf48574f8ec3d2464e2e3da98891 Mon Sep 17 00:00:00 2001 From: Yang Zhang Date: Thu, 15 Aug 2013 09:14:11 +0200 Subject: VTD: Remove the check for reserved device scope type Though we only have four valid types now, the new type may be added in future. It's better to remove the check and only deal with the type that we can recognize. Signed-off-by: Yang Zhang Signed-off-by: Xiantao Zhang Acked-by: Keir Fraser Add log message for this case. Signed-off-by: Jan Beulich master commit: 749bc93f7a1ad47640cc7876d27641e98a08bf61 master date: 2013-04-16 10:36:05 +0200 --- xen/drivers/passthrough/vtd/dmar.c | 10 ++++++++-- xen/include/acpi/actbl2.h | 1 - 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/xen/drivers/passthrough/vtd/dmar.c b/xen/drivers/passthrough/vtd/dmar.c index a88f46b5b3..464c14a38f 100644 --- a/xen/drivers/passthrough/vtd/dmar.c +++ b/xen/drivers/passthrough/vtd/dmar.c @@ -255,8 +255,7 @@ static int __init scope_device_count(const void *start, const void *end) while ( start < end ) { scope = start; - if ( (scope->length < MIN_SCOPE_LEN) || - (scope->entry_type >= ACPI_DMAR_SCOPE_TYPE_RESERVED) ) + if ( scope->length < MIN_SCOPE_LEN ) { dprintk(XENLOG_WARNING VTDPREFIX, "Invalid device scope.\n"); return -EINVAL; @@ -367,6 +366,13 @@ static int __init acpi_parse_dev_scope( } break; + + default: + if ( iommu_verbose ) + printk(XENLOG_WARNING VTDPREFIX "Unknown scope type %#x\n", + acpi_scope->entry_type); + start += acpi_scope->length; + continue; } scope->devices[didx++] = PCI_BDF(bus, path->dev, path->fn); start += acpi_scope->length; diff --git a/xen/include/acpi/actbl2.h b/xen/include/acpi/actbl2.h index a28226ab11..87bc6b3f56 100644 --- a/xen/include/acpi/actbl2.h +++ b/xen/include/acpi/actbl2.h @@ -303,7 +303,6 @@ enum acpi_dmar_scope_type { ACPI_DMAR_SCOPE_TYPE_BRIDGE = 2, ACPI_DMAR_SCOPE_TYPE_IOAPIC = 3, ACPI_DMAR_SCOPE_TYPE_HPET = 4, - ACPI_DMAR_SCOPE_TYPE_RESERVED = 5 /* 5 and greater are reserved */ }; struct acpi_dmar_pci_path { -- cgit v1.2.3