[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen master] passthrough/io: fall back to remapping interrupt when we can't use VT-d PI



commit 220e0b033d957f61b772d59cf1b2124fe760b06d
Author:     Chao Gao <chao.gao@xxxxxxxxx>
AuthorDate: Fri Apr 7 15:38:40 2017 +0200
Commit:     Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Fri Apr 7 15:38:40 2017 +0200

    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 will
    stay in posted format. 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>
    Reviewed-by: Kevin Tian <kevin.tian@xxxxxxxxx>
    [jb: guard against vcpu being NULL]
    Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
---
 xen/drivers/passthrough/io.c | 11 ++---------
 1 file changed, 2 insertions(+), 9 deletions(-)

diff --git a/xen/drivers/passthrough/io.c b/xen/drivers/passthrough/io.c
index 3e0a10e..e5a43e5 100644
--- a/xen/drivers/passthrough/io.c
+++ b/xen/drivers/passthrough/io.c
@@ -413,15 +413,8 @@ int pt_irq_create_bind(
 
         /* Use interrupt posting if it is supported. */
         if ( iommu_intpost )
-        {
-            if ( vcpu )
-                pi_update_irte(&vcpu->arch.hvm_vmx.pi_desc, 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 ? &vcpu->arch.hvm_vmx.pi_desc : NULL,
+                           info, pirq_dpci->gmsi.gvec);
 
         break;
     }
--
generated by git-patchbot for /home/xen/git/xen.git#master

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxx
https://lists.xenproject.org/xen-changelog

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.