On Mon, Feb 25, 2019 at 05:51:50PM +0100, Uros Bizjak wrote: > __vmx_vcpu_run does not use FP, remove unneded FP setup. The frame pointer is needed because __vmx_vcpu_run() makes calls to vmx_update_host_rsp() and vmx_vmenter(). The frame pointer is created unconditoinally because RBP needs to be saved/restored regardless of whether or not frame pointers are being used for stack traces and the overhead of a single register-to-register MOV is negligible, i.e. not worth the ugliness of an extra #ifdef. >From tools/objtool/Documentation/stack-validation.txt: For stack traces based on frame pointers to be reliable, all functions which call other functions must first create a stack frame and update the frame pointer. If a first function doesn't properly create a stack frame before calling a second function, the *caller* of the first function will be skipped on the stack trace. > > Signed-off-by: Uros Bizjak <ubizjak@xxxxxxxxx> > --- > arch/x86/kvm/vmx/vmenter.S | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/arch/x86/kvm/vmx/vmenter.S b/arch/x86/kvm/vmx/vmenter.S > index 7b272738c576..d17e23197632 100644 > --- a/arch/x86/kvm/vmx/vmenter.S > +++ b/arch/x86/kvm/vmx/vmenter.S > @@ -91,7 +91,6 @@ ENDPROC(vmx_vmexit) > */ > ENTRY(__vmx_vcpu_run) > push %_ASM_BP > - mov %_ASM_SP, %_ASM_BP > #ifdef CONFIG_X86_64 > push %r15 > push %r14 > -- > 2.20.1 >