KVM: x86: Force kvm_rebooting=true during emergency reboot/crash
authorSean Christopherson <seanjc@google.com>
Fri, 21 Jul 2023 20:18:57 +0000 (13:18 -0700)
committerSean Christopherson <seanjc@google.com>
Thu, 3 Aug 2023 22:37:15 +0000 (15:37 -0700)
Set kvm_rebooting when virtualization is disabled in an emergency so that
KVM eats faults on virtualization instructions even if kvm_reboot() isn't
reached.

Reviewed-by: Kai Huang <kai.huang@intel.com>
Link: https://lore.kernel.org/r/20230721201859.2307736-18-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
arch/x86/kvm/svm/svm.c
arch/x86/kvm/vmx/vmx.c

index 47f9c71..8d1b3c8 100644 (file)
@@ -605,6 +605,8 @@ fault:
 
 static void svm_emergency_disable(void)
 {
+       kvm_rebooting = true;
+
        kvm_cpu_svm_disable();
 }
 
index ff0eced..415665c 100644 (file)
@@ -752,6 +752,8 @@ static void vmx_emergency_disable(void)
        int cpu = raw_smp_processor_id();
        struct loaded_vmcs *v;
 
+       kvm_rebooting = true;
+
        list_for_each_entry(v, &per_cpu(loaded_vmcss_on_cpu, cpu),
                            loaded_vmcss_on_cpu_link)
                vmcs_clear(v->vmcs);