• Josh Poimboeuf's avatar
    x86/alternatives: Add stack frame dependency to alternative_call_2() · 317c2ce7
    Josh Poimboeuf authored
    
    
    Linus reported the following objtool warning:
    
      kernel/signal.o: warning: objtool: .altinstr_replacement+0x54: call without frame pointer save/setup
    
    The warning is valid.  It's caused by the fact that gcc placed the call
    instruction in alternative_call_2()'s inline asm before the frame
    pointer setup, which breaks frame pointer convention and can result in a
    bad stack trace.
    
    Force a stack frame to be created before the call instruction by listing
    the stack pointer as an output operand in the inline asm statement.
    Reported-and-tested-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: default avatarJosh Poimboeuf <jpoimboe@redhat.com>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: Denys Vlasenko <dvlasenk@redhat.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutr...
    317c2ce7
alternative.h 8.3 KB