mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-11 06:36:40 +07:00
KVM: SVM: check for nested VINTR flag in svm_interrupt_allowed
Not checking for this flag breaks any nested hypervisor that does not set VINTR. So fix it with this patch. Signed-off-by: Joerg Roedel <joerg.roedel@amd.com> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
parent
26666957a5
commit
108768de55
@ -2463,7 +2463,7 @@ static int svm_interrupt_allowed(struct kvm_vcpu *vcpu)
|
|||||||
return (vmcb->save.rflags & X86_EFLAGS_IF) &&
|
return (vmcb->save.rflags & X86_EFLAGS_IF) &&
|
||||||
!(vmcb->control.int_state & SVM_INTERRUPT_SHADOW_MASK) &&
|
!(vmcb->control.int_state & SVM_INTERRUPT_SHADOW_MASK) &&
|
||||||
gif_set(svm) &&
|
gif_set(svm) &&
|
||||||
!is_nested(svm);
|
!(is_nested(svm) && (svm->vcpu.arch.hflags & HF_VINTR_MASK));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void enable_irq_window(struct kvm_vcpu *vcpu)
|
static void enable_irq_window(struct kvm_vcpu *vcpu)
|
||||||
|
Loading…
Reference in New Issue
Block a user