aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/svm.c
diff options
context:
space:
mode:
authorGleb Natapov <gleb@redhat.com>2010-05-23 07:28:26 -0400
committerAvi Kivity <avi@redhat.com>2010-08-01 03:35:51 -0400
commit9fb2d2b4ff292a01ae30da003d1dc097917b0988 (patch)
treebcbbf1f07edfc1f31168801b9e1be0b5d7184597 /arch/x86/kvm/svm.c
parentf78978aa3a8222f7822f15fba5dbaea990ef0887 (diff)
KVM: SVM: correctly trace irq injection
On SVM interrupts are injected by svm_set_irq() not svm_inject_irq(). The later is used only to wait for irq window. Signed-off-by: Gleb Natapov <gleb@redhat.com> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/x86/kvm/svm.c')
-rw-r--r--arch/x86/kvm/svm.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index 134260c36ce2..f5c2b432078a 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -2917,9 +2917,6 @@ static inline void svm_inject_irq(struct vcpu_svm *svm, int irq)
2917{ 2917{
2918 struct vmcb_control_area *control; 2918 struct vmcb_control_area *control;
2919 2919
2920 trace_kvm_inj_virq(irq);
2921
2922 ++svm->vcpu.stat.irq_injections;
2923 control = &svm->vmcb->control; 2920 control = &svm->vmcb->control;
2924 control->int_vector = irq; 2921 control->int_vector = irq;
2925 control->int_ctl &= ~V_INTR_PRIO_MASK; 2922 control->int_ctl &= ~V_INTR_PRIO_MASK;
@@ -2933,6 +2930,9 @@ static void svm_set_irq(struct kvm_vcpu *vcpu)
2933 2930
2934 BUG_ON(!(gif_set(svm))); 2931 BUG_ON(!(gif_set(svm)));
2935 2932
2933 trace_kvm_inj_virq(vcpu->arch.interrupt.nr);
2934 ++vcpu->stat.irq_injections;
2935
2936 svm->vmcb->control.event_inj = vcpu->arch.interrupt.nr | 2936 svm->vmcb->control.event_inj = vcpu->arch.interrupt.nr |
2937 SVM_EVTINJ_VALID | SVM_EVTINJ_TYPE_INTR; 2937 SVM_EVTINJ_VALID | SVM_EVTINJ_TYPE_INTR;
2938} 2938}