On Fri, 2023-03-10 at 13:42 -0800, Sean Christopherson wrote: > Use the virt callback to disable SVM (and set GIF=1) during an emergency > instead of blindly attempting to disable SVM. Like the VMX case, if KVM > (or an out-of-tree hypervisor) isn't loaded/active, SVM can't be in use. > > Signed-off-by: Sean Christopherson <seanjc@xxxxxxxxxx> [...] > -#if IS_ENABLED(CONFIG_KVM_INTEL) > +#if IS_ENABLED(CONFIG_KVM_INTEL) || IS_ENABLED(CONFIG_KVM_AMD) > /* RCU-protected callback to disable virtualization prior to reboot. */ > static cpu_emergency_virt_cb __rcu *cpu_emergency_virt_callback; > > @@ -821,7 +821,7 @@ int crashing_cpu = -1; > */ > void cpu_emergency_disable_virtualization(void) > { > -#if IS_ENABLED(CONFIG_KVM_INTEL) > +#if IS_ENABLED(CONFIG_KVM_INTEL) || IS_ENABLED(CONFIG_KVM_AMD) > cpu_emergency_virt_cb *callback; > > rcu_read_lock(); > @@ -830,8 +830,6 @@ void cpu_emergency_disable_virtualization(void) > callback(); > rcu_read_unlock(); > #endif > - /* KVM_AMD doesn't yet utilize the common callback. */ > - cpu_emergency_svm_disable(); > } Shouldn't the callback be always present since you want to consider 'out-of- tree' hypervisor case?