From: Jan Beulich Date: Mon, 16 Sep 2013 10:24:19 +0000 (+0200) Subject: AMD-Vi: also match IVRS overrides on device ID X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~6364 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=3722827b3719a193df2b4103f61ef8666a0e7d67;p=xen.git AMD-Vi: also match IVRS overrides on device ID Signed-off-by: Jan Beulich Acked-by: Suravee Suthikulpanit --- diff --git a/xen/drivers/passthrough/amd/iommu_acpi.c b/xen/drivers/passthrough/amd/iommu_acpi.c index 9feab86f20..bd66c65888 100644 --- a/xen/drivers/passthrough/amd/iommu_acpi.c +++ b/xen/drivers/passthrough/amd/iommu_acpi.c @@ -714,6 +714,24 @@ static u16 __init parse_ivhd_device_special( * consistency here --- whether entry's IOAPIC ID is valid and * whether there are conflicting/duplicated entries. */ + apic = find_first_bit(ioapic_cmdline, ARRAY_SIZE(ioapic_sbdf)); + while ( apic < ARRAY_SIZE(ioapic_sbdf) ) + { + if ( ioapic_sbdf[apic].bdf == bdf && + ioapic_sbdf[apic].seg == seg ) + break; + apic = find_next_bit(ioapic_cmdline, ARRAY_SIZE(ioapic_sbdf), + apic + 1); + } + if ( apic < ARRAY_SIZE(ioapic_sbdf) ) + { + AMD_IOMMU_DEBUG("IVHD: Command line override present for IO-APIC %#x" + "(IVRS: %#x devID %04x:%02x:%02x.%u)\n", + apic, special->handle, seg, PCI_BUS(bdf), + PCI_SLOT(bdf), PCI_FUNC(bdf)); + break; + } + for ( apic = 0; apic < nr_ioapics; apic++ ) { if ( IO_APIC_ID(apic) != special->handle )