On 17.05.2009, at 08:48, Gleb Natapov <gleb@xxxxxxxxxx> wrote:
On Fri, May 15, 2009 at 10:22:20AM +0200, Alexander Graf wrote:
static void svm_set_irq(struct kvm_vcpu *vcpu, int irq)
{
struct vcpu_svm *svm = to_svm(vcpu);
- nested_svm_intr(svm);
+ if(!(svm->vcpu.arch.hflags & HF_GIF_MASK))
+ return;
Why would this function be called if HF_GIF_MASK is not set? This
check is done in svm_interrupt_allowed().
I agree it shouldn't but I don't remember why exactly it triggered
here. I'll try and get a backtrace tomorrow.
Either way, if it's not a return, it's a BUG().
Alex
- svm_queue_irq(vcpu, irq);
+ svm->vmcb->control.event_inj = irq |
+ SVM_EVTINJ_VALID | SVM_EVTINJ_TYPE_INTR;
}
--
Gleb.
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html