diff -r c33a40b4c22b xen/drivers/passthrough/vtd/intremap.c --- a/xen/drivers/passthrough/vtd/intremap.c Mon Jun 30 14:19:09 2008 +0100 +++ b/xen/drivers/passthrough/vtd/intremap.c Tue Jul 01 13:45:12 2008 +0800 @@ -153,6 +153,7 @@ static void ioapic_rte_to_remap_entry(st } memcpy(iremap_entry, &new_ire, sizeof(struct iremap_entry)); + iommu_flush_cache_entry(iremap_entry); iommu_flush_iec_index(iommu, 0, index); invalidate_sync(iommu); @@ -378,6 +379,7 @@ static void msi_msg_to_remap_entry( remap_rte->data = 0; memcpy(iremap_entry, &new_ire, sizeof(struct iremap_entry)); + iommu_flush_cache_entry(iremap_entry); iommu_flush_iec_index(iommu, 0, index); invalidate_sync(iommu);