Yang Zhang
2013-Apr-17 01:54 UTC
[PATCH v2] VTD: Remove the check for reserved device scope type
From: Yang Zhang <yang.z.zhang@Intel.com> 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 <yang.z.zhang@Intel.com> Signed-off-by: Xiantao Zhang <xiantao.zhang@Intel.com> --- v1->v2: Add log message for unknown device type. 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 370d5d6..1fb43bc 100644 --- a/xen/drivers/passthrough/vtd/dmar.c +++ b/xen/drivers/passthrough/vtd/dmar.c @@ -283,8 +283,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; @@ -409,6 +408,13 @@ static int __init acpi_parse_dev_scope( } break; + + default: + if ( iommu_verbose ) + dprintk(VTDPREFIX, " Unknown device type: 0x%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 a28226a..87bc6b3 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 { -- 1.7.1
Jan Beulich
2013-Apr-17 08:30 UTC
Re: [PATCH v2] VTD: Remove the check for reserved device scope type
>>> On 17.04.13 at 03:54, Yang Zhang <yang.z.zhang@intel.com> wrote: > From: Yang Zhang <yang.z.zhang@Intel.com> > > 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 <yang.z.zhang@Intel.com> > Signed-off-by: Xiantao Zhang <xiantao.zhang@Intel.com> > --- > v1->v2: Add log message for unknown device type.You apparently didn''t notice that this got committed already? Jan> 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 370d5d6..1fb43bc 100644 > --- a/xen/drivers/passthrough/vtd/dmar.c > +++ b/xen/drivers/passthrough/vtd/dmar.c > @@ -283,8 +283,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; > @@ -409,6 +408,13 @@ static int __init acpi_parse_dev_scope( > } > > break; > + > + default: > + if ( iommu_verbose ) > + dprintk(VTDPREFIX, " Unknown device type: 0x%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 a28226a..87bc6b3 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 { > -- > 1.7.1
Zhang, Yang Z
2013-Apr-17 12:44 UTC
Re: [PATCH v2] VTD: Remove the check for reserved device scope type
Jan Beulich wrote on 2013-04-17:>>>> On 17.04.13 at 03:54, Yang Zhang <yang.z.zhang@intel.com> wrote: >> From: Yang Zhang <yang.z.zhang@Intel.com> >> >> 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 <yang.z.zhang@Intel.com> >> Signed-off-by: Xiantao Zhang <xiantao.zhang@Intel.com> >> --- >> v1->v2: Add log message for unknown device type. > > You apparently didn''t notice that this got committed already?Yes, I see it now.> Jan > >> 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 370d5d6..1fb43bc 100644 >> --- a/xen/drivers/passthrough/vtd/dmar.c >> +++ b/xen/drivers/passthrough/vtd/dmar.c >> @@ -283,8 +283,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; @@ -409,6 +408,13 @@ static >> int __init acpi_parse_dev_scope( } >> >> break; >> + >> + default: >> + if ( iommu_verbose ) >> + dprintk(VTDPREFIX, " Unknown device type: 0x%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 a28226a..87bc6b3 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 { >> -- >> 1.7.1 > >Best regards, Yang