diff options
Diffstat (limited to 'xen/drivers/passthrough/iommu.c')
-rw-r--r-- | xen/drivers/passthrough/iommu.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c index 2db2e17494..c5906abd88 100644 --- a/xen/drivers/passthrough/iommu.c +++ b/xen/drivers/passthrough/iommu.c @@ -548,18 +548,20 @@ void iommu_update_ire_from_apic( const struct iommu_ops *ops = iommu_get_ops(); ops->update_ire_from_apic(apic, reg, value); } -void iommu_update_ire_from_msi( + +int iommu_update_ire_from_msi( struct msi_desc *msi_desc, struct msi_msg *msg) { const struct iommu_ops *ops = iommu_get_ops(); - ops->update_ire_from_msi(msi_desc, msg); + return iommu_intremap ? ops->update_ire_from_msi(msi_desc, msg) : 0; } void iommu_read_msi_from_ire( struct msi_desc *msi_desc, struct msi_msg *msg) { const struct iommu_ops *ops = iommu_get_ops(); - ops->read_msi_from_ire(msi_desc, msg); + if ( iommu_intremap ) + ops->read_msi_from_ire(msi_desc, msg); } unsigned int iommu_read_apic_from_ire(unsigned int apic, unsigned int reg) |