x86/kvm: Add stack frame dependency to fastop() inline asm
authorJosh Poimboeuf <jpoimboe@redhat.com>
Wed, 9 Mar 2016 18:59:50 +0000 (12:59 -0600)
committerPaolo Bonzini <pbonzini@redhat.com>
Tue, 10 May 2016 16:16:50 +0000 (18:16 +0200)
commit4548f63e65116458da5245d89aa213b4f8b2ab16
tree8a8de094e1c0052b87f2180398fd5e4f7b4af9e5
parent5e1b59abef69e405eabfbe0ad09ad6b6e5303c7d
x86/kvm: Add stack frame dependency to fastop() inline asm

The kbuild test robot reported this objtool warning [1]:

  arch/x86/kvm/emulate.o: warning: objtool: fastop()+0x69: call without frame pointer save/setup

The issue seems to be caused by CONFIG_PROFILE_ALL_BRANCHES.  With that
option, for some reason gcc decides not to create a stack frame in
fastop() before doing the inline asm call, which can result in a bad
stack trace.

Force a stack frame to be created if CONFIG_FRAME_POINTER is enabled by
listing the stack pointer as an output operand for the inline asm
statement.

This change has no effect for !CONFIG_PROFILE_ALL_BRANCHES.

[1] https://lists.01.org/pipermail/kbuild-all/2016-March/018249.html

Reported-by: kbuild test robot <fengguang.wu@intel.com>
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Acked-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/emulate.c