|
@@ -4486,16 +4486,6 @@ static void vmx_inject_nmi(struct kvm_vcpu *vcpu)
|
|
|
INTR_TYPE_NMI_INTR | INTR_INFO_VALID_MASK | NMI_VECTOR);
|
|
|
}
|
|
|
|
|
|
-static int vmx_nmi_allowed(struct kvm_vcpu *vcpu)
|
|
|
-{
|
|
|
- if (!cpu_has_virtual_nmis() && to_vmx(vcpu)->soft_vnmi_blocked)
|
|
|
- return 0;
|
|
|
-
|
|
|
- return !(vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) &
|
|
|
- (GUEST_INTR_STATE_MOV_SS | GUEST_INTR_STATE_STI
|
|
|
- | GUEST_INTR_STATE_NMI));
|
|
|
-}
|
|
|
-
|
|
|
static bool vmx_get_nmi_mask(struct kvm_vcpu *vcpu)
|
|
|
{
|
|
|
if (!cpu_has_virtual_nmis())
|
|
@@ -4525,6 +4515,16 @@ static void vmx_set_nmi_mask(struct kvm_vcpu *vcpu, bool masked)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+static int vmx_nmi_allowed(struct kvm_vcpu *vcpu)
|
|
|
+{
|
|
|
+ if (!cpu_has_virtual_nmis() && to_vmx(vcpu)->soft_vnmi_blocked)
|
|
|
+ return 0;
|
|
|
+
|
|
|
+ return !(vmcs_read32(GUEST_INTERRUPTIBILITY_INFO) &
|
|
|
+ (GUEST_INTR_STATE_MOV_SS | GUEST_INTR_STATE_STI
|
|
|
+ | GUEST_INTR_STATE_NMI));
|
|
|
+}
|
|
|
+
|
|
|
static int vmx_interrupt_allowed(struct kvm_vcpu *vcpu)
|
|
|
{
|
|
|
if (is_guest_mode(vcpu)) {
|