[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v10 6/6] passthrough/io: Fall back to remapping interrupt when we can't use VT-d PI
The current logic of using VT-d pi is when guest configurates the pirq's destination vcpu to a single vcpu, the according IRTE is updated to posted format. If the destination of the pirq is multiple vcpus, we just use interrupt remapping. Obviously, we should fall back to remapping interrupt when guest wrongly configurate destination of pirq or makes it have multi-destination vcpus. Signed-off-by: Chao Gao <chao.gao@xxxxxxxxx> --- v10: - Newly added xen/drivers/passthrough/io.c | 9 +-------- xen/drivers/passthrough/vtd/intremap.c | 2 +- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/xen/drivers/passthrough/io.c b/xen/drivers/passthrough/io.c index 37d9af6..be06b10 100644 --- a/xen/drivers/passthrough/io.c +++ b/xen/drivers/passthrough/io.c @@ -457,14 +457,7 @@ int pt_irq_create_bind( /* Use interrupt posting if it is supported. */ if ( iommu_intpost ) - { - if ( vcpu ) - pi_update_irte(vcpu, info, pirq_dpci->gmsi.gvec); - else - dprintk(XENLOG_G_INFO, - "%pv: deliver interrupt in remapping mode,gvec:%02x\n", - vcpu, pirq_dpci->gmsi.gvec); - } + pi_update_irte(vcpu, info, pirq_dpci->gmsi.gvec); break; } diff --git a/xen/drivers/passthrough/vtd/intremap.c b/xen/drivers/passthrough/vtd/intremap.c index 342b45f..331c7d5 100644 --- a/xen/drivers/passthrough/vtd/intremap.c +++ b/xen/drivers/passthrough/vtd/intremap.c @@ -946,7 +946,7 @@ int pi_update_irte(const struct vcpu *v, const struct pirq *pirq, { struct irq_desc *desc; struct msi_desc *msi_desc; - const struct pi_desc *pi_desc = &v->arch.hvm_vmx.pi_desc; + const struct pi_desc *pi_desc = v ? &v->arch.hvm_vmx.pi_desc : NULL; int rc; desc = pirq_spin_lock_irq_desc(pirq, NULL); -- 1.8.3.1 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |