|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-users] Xen IOMMU disabled due to IVRS table... Blah blah blah
I own a crosshair v formula with this issue, the problem seems to be the
reported io-apics handles are wrong
so here it is, this hack is for 4.1.5 though it can be adapted for 4.2.2
--- a/xen/drivers/passthrough/amd/iommu_acpi.c 2013-04-23 16:44:20.000000000
+0000
+++ b/xen/drivers/passthrough/amd/iommu_acpi.c 2013-05-18 22:19:18.838434000
+0000
@@ -674,18 +674,18 @@ static u16 __init parse_ivhd_device_spec
*/
for ( apic = 0; apic < nr_ioapics; apic++ )
{
- if ( IO_APIC_ID(apic) != ivhd_device->special.handle )
+ if ( ioapic_bdf[IO_APIC_ID(apic)].bdf !=
ioapic_bdf[ivhd_device->special.handle].bdf )
continue;
- if ( ioapic_bdf[ivhd_device->special.handle].pin_setup )
+ if ( ioapic_bdf[IO_APIC_ID(apic)].pin_setup )
{
- if ( ioapic_bdf[ivhd_device->special.handle].bdf == bdf )
+ if ( ioapic_bdf[IO_APIC_ID(apic)].bdf == bdf )
AMD_IOMMU_DEBUG("IVHD Warning: Duplicate IO-APIC %#x
entries\n",
- ivhd_device->special.handle);
+ IO_APIC_ID(apic));
else
{
printk(XENLOG_ERR "IVHD Error: Conflicting IO-APIC %#x
entries\n",
- ivhd_device->special.handle);
+ IO_APIC_ID(apic));
if ( amd_iommu_perdev_intremap )
return 0;
}
@@ -693,9 +693,9 @@ static u16 __init parse_ivhd_device_spec
else
{
/* set device id of ioapic */
- ioapic_bdf[ivhd_device->special.handle].bdf = bdf;
+ ioapic_bdf[IO_APIC_ID(apic)].bdf = bdf;
- ioapic_bdf[ivhd_device->special.handle].pin_setup =
xzalloc_array(
+ ioapic_bdf[IO_APIC_ID(apic)].pin_setup = xzalloc_array(
unsigned long, BITS_TO_LONGS(nr_ioapic_registers[apic]));
if ( nr_ioapic_registers[apic] &&
!ioapic_bdf[IO_APIC_ID(apic)].pin_setup )
--
View this message in context:
http://xen.1045712.n5.nabble.com/Xen-IOMMU-disabled-due-to-IVRS-table-Blah-blah-blah-tp5716461p5716579.html
Sent from the Xen - User mailing list archive at Nabble.com.
_______________________________________________
Xen-users mailing list
Xen-users@xxxxxxxxxxxxx
http://lists.xen.org/xen-users
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |