VT-d: posted interrupts require interrupt remapping

Initially I had just noticed the unnecessary indirection in the call
from pi_update_irte(). The generic wrapper having an iommu_intremap
conditional made me look at the setup code though. So first of all
enforce the necessary dependency.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Kevin Tian <kevin.tian@intel.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
master commit: 6c54663786
master date: 2019-04-09 15:12:07 +0200
This commit is contained in:
Jan Beulich committed 2019-05-15 09:41:37 +02:00
1 parent 8457c15b98
commit fa9d5b8beb
2 files changed
+3 -2

No files matched your search

+2 -1
View File
@@ -988,7 +988,8 @@ int pi_update_irte(const struct pi_desc *pi_desc, const struct pirq *pirq,
spin_unlock_irq(&desc->lock);
ASSERT(pcidevs_locked());
return iommu_update_ire_from_msi(msi_desc, &msi_desc->msg);
return msi_msg_write_remap_rte(msi_desc, &msi_desc->msg);
unlock_out:
spin_unlock_irq(&desc->lock);
+1 -1
View File
@@ -2342,7 +2342,7 @@ int __init intel_vtd_setup(void)
* not supported, since we count on this feature to
* atomically update 16-byte IRTE in posted format.
*/
if ( !cap_intr_post(iommu->cap) || !cpu_has_cx16 )
if ( !cap_intr_post(iommu->cap) || !iommu_intremap || !cpu_has_cx16 )
iommu_intpost = 0;
if ( !vtd_ept_page_compatible(iommu) )
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.