diff -r 97102ddc3cac xen/drivers/passthrough/amd/iommu_intr.c --- a/xen/drivers/passthrough/amd/iommu_intr.c Tue Sep 15 16:32:30 2009 +0200 +++ b/xen/drivers/passthrough/amd/iommu_intr.c Tue Sep 15 16:50:49 2009 +0200 @@ -192,6 +192,9 @@ void amd_iommu_ioapic_update_ire( *IO_APIC_BASE(apic) = reg; *(IO_APIC_BASE(apic)+4) = value; + if ( !iommu_intremap ) + return; + /* get device id of ioapic devices */ bdf = ioapic_bdf[IO_APIC_ID(apic)]; iommu = find_iommu_for_device(bdf); @@ -281,6 +284,9 @@ void amd_iommu_msi_msg_update_ire( struct pci_dev *pdev = msi_desc->dev; struct amd_iommu *iommu = NULL; + if ( !iommu_intremap ) + return; + iommu = find_iommu_for_device((pdev->bus << 8) | pdev->devfn); if ( !iommu )