Queuing the vector causes a spin when injection and window-exit are coincident.

Signed-off-by: Avi Kivity <[EMAIL PROTECTED]>
Acked-by: Gregory Haskins <[EMAIL PROTECTED]>
---

 drivers/kvm/svm.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/drivers/kvm/svm.c b/drivers/kvm/svm.c
index bdc5d98..f81f3a2 100644
--- a/drivers/kvm/svm.c
+++ b/drivers/kvm/svm.c
@@ -1425,11 +1425,16 @@ static void do_intr_requests(struct kvm_vcpu *vcpu,
 
                if (ack.flags & KVM_IRQACKDATA_VECTOR_VALID) {
                        control = &vcpu->svm->vmcb->control;
+#if 0
                        control->int_vector = ack.vector;
                        control->int_ctl &= ~V_INTR_PRIO_MASK;
                        control->int_ctl |= V_IRQ_MASK |
                                ((/*control->int_vector >> 4*/ 0xf) <<
                                 V_INTR_PRIO_SHIFT);
+#endif
+                       control->event_inj = ack.vector
+                               | SVM_EVTINJ_VALID
+                               | SVM_EVTINJ_TYPE_INTR;
 
                        ++vcpu->stat.irq_accepted;
                }


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to