debuggers.hg

changeset 21069:594142f8c0bb

VTd: Ignore HPET/IOAPIC decls in DRHD scopes

Signed-off-by: Alex Williamson <alex.williamson@hp.com>
author Keir Fraser <keir.fraser@citrix.com>
date Thu Mar 11 08:08:32 2010 +0000 (2010-03-11)
parents 132ac04cbdba
children d3720d951173
files xen/drivers/passthrough/vtd/dmar.c
line diff
     1.1 --- a/xen/drivers/passthrough/vtd/dmar.c	Tue Mar 09 18:18:19 2010 +0000
     1.2 +++ b/xen/drivers/passthrough/vtd/dmar.c	Thu Mar 11 08:08:32 2010 +0000
     1.3 @@ -407,9 +407,15 @@ acpi_parse_one_drhd(struct acpi_dmar_ent
     1.4      {
     1.5          u8 b, d, f;
     1.6          int i, invalid_cnt = 0;
     1.7 +        void *p;
     1.8  
     1.9 -        for ( i = 0; i < dmaru->scope.devices_cnt; i++ )
    1.10 +        for ( i = 0, p = dev_scope_start; i < dmaru->scope.devices_cnt;
    1.11 +              i++, p += ((struct acpi_dev_scope *)p)->length )
    1.12          {
    1.13 +            if ( ((struct acpi_dev_scope *)p)->dev_type == ACPI_DEV_IOAPIC ||
    1.14 +                 ((struct acpi_dev_scope *)p)->dev_type == ACPI_DEV_MSI_HPET )
    1.15 +                continue;
    1.16 +
    1.17              b = PCI_BUS(dmaru->scope.devices[i]);
    1.18              d = PCI_SLOT(dmaru->scope.devices[i]);
    1.19              f = PCI_FUNC(dmaru->scope.devices[i]);