Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 710ff4a8 authored by Eduardo Habkost's avatar Eduardo Habkost Committed by Avi Kivity
Browse files

KVM: VMX: extract kvm_cpu_vmxoff() from hardware_disable()



Along with some comments on why it is different from the core cpu_vmxoff()
function.

Signed-off-by: default avatarEduardo Habkost <ehabkost@redhat.com>
Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
parent 1e993114
Loading
Loading
Loading
Loading
+11 −2
Original line number Original line Diff line number Diff line
@@ -1091,13 +1091,22 @@ static void vmclear_local_vcpus(void)
		__vcpu_clear(vmx);
		__vcpu_clear(vmx);
}
}


static void hardware_disable(void *garbage)

/* Just like cpu_vmxoff(), but with the __kvm_handle_fault_on_reboot()
 * tricks.
 */
static void kvm_cpu_vmxoff(void)
{
{
	vmclear_local_vcpus();
	asm volatile (__ex(ASM_VMX_VMXOFF) : : : "cc");
	asm volatile (__ex(ASM_VMX_VMXOFF) : : : "cc");
	write_cr4(read_cr4() & ~X86_CR4_VMXE);
	write_cr4(read_cr4() & ~X86_CR4_VMXE);
}
}


static void hardware_disable(void *garbage)
{
	vmclear_local_vcpus();
	kvm_cpu_vmxoff();
}

static __init int adjust_vmx_controls(u32 ctl_min, u32 ctl_opt,
static __init int adjust_vmx_controls(u32 ctl_min, u32 ctl_opt,
				      u32 msr, u32 *result)
				      u32 msr, u32 *result)
{
{