mirror of https://gitee.com/openkylin/linux.git
KVM: x86: WARN on injected+pending exception even in nested case
WARN if a pending exception is coincident with an injected exception before calling check_nested_events() so that the WARN will fire even if inject_pending_event() bails early because check_nested_events() detects the conflict. Bailing early isn't problematic (quite the opposite), but suppressing the WARN is undesirable as it could mask a bug elsewhere in KVM. Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com> Message-Id: <20200423022550.15113-11-sean.j.christopherson@intel.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
221e761090
commit
3b82b8d7fd
|
@ -7713,6 +7713,9 @@ static int inject_pending_event(struct kvm_vcpu *vcpu)
|
|||
kvm_x86_ops.set_irq(vcpu);
|
||||
}
|
||||
|
||||
WARN_ON_ONCE(vcpu->arch.exception.injected &&
|
||||
vcpu->arch.exception.pending);
|
||||
|
||||
/*
|
||||
* Call check_nested_events() even if we reinjected a previous event
|
||||
* in order for caller to determine if it should require immediate-exit
|
||||
|
@ -7731,7 +7734,6 @@ static int inject_pending_event(struct kvm_vcpu *vcpu)
|
|||
vcpu->arch.exception.has_error_code,
|
||||
vcpu->arch.exception.error_code);
|
||||
|
||||
WARN_ON_ONCE(vcpu->arch.exception.injected);
|
||||
vcpu->arch.exception.pending = false;
|
||||
vcpu->arch.exception.injected = true;
|
||||
|
||||
|
|
Loading…
Reference in New Issue