KVM: VMX: Create a stack frame in vCPU-run
authorSean Christopherson <sean.j.christopherson@intel.com>
Fri, 25 Jan 2019 15:41:11 +0000 (07:41 -0800)
committerPaolo Bonzini <pbonzini@redhat.com>
Wed, 20 Feb 2019 21:48:13 +0000 (22:48 +0100)
...in preparation for moving to a proper assembly sub-routnine.
vCPU-run isn't a leaf function since it calls vmx_update_host_rsp()
and vmx_vmenter().  And since we need to save/restore RBP anyways,
unconditionally creating the frame costs a single MOV, i.e. don't
bother keying off CONFIG_FRAME_POINTER or using FRAME_BEGIN, etc...

Signed-off-by: Sean Christopherson <sean.j.christopherson@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/vmx/vmx.c

index 12fb342218ada0f87992216bd69cdfd952e1824d..52fea89732dbb604de1f13e8767e417f6659c434 100644 (file)
@@ -6407,8 +6407,8 @@ static void __vmx_vcpu_run(struct kvm_vcpu *vcpu, struct vcpu_vmx *vmx)
                write_cr2(vcpu->arch.cr2);
 
        asm(
-               /* Store host registers */
                "push %%" _ASM_BP " \n\t"
+               "mov  %%" _ASM_SP ", %%" _ASM_BP " \n\t"
 
                /*
                 * Save @regs, _ASM_ARG2 may be modified by vmx_update_host_rsp() and