diff options
author | Gleb Natapov <gleb@redhat.com> | 2010-05-23 07:28:26 -0400 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2010-08-01 03:35:51 -0400 |
commit | 9fb2d2b4ff292a01ae30da003d1dc097917b0988 (patch) | |
tree | bcbbf1f07edfc1f31168801b9e1be0b5d7184597 /arch/x86/kvm/svm.c | |
parent | f78978aa3a8222f7822f15fba5dbaea990ef0887 (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.c | 6 |
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 | } |