]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
objtool/x86: add missing embedded_insn check
authorJohn Sperbeck <jsperbeck@google.com>
Sat, 28 Oct 2023 18:41:31 +0000 (18:41 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 8 Nov 2023 16:26:43 +0000 (17:26 +0100)
When dbf460087755 ("objtool/x86: Fixup frame-pointer vs rethunk")
was backported to some stable branches, the check for dest->embedded_insn
in is_special_call() was missed.  The result is that the warning it
was intended to suppress still appears.  For example on 6.1 (on kernels
before 6.1, the '-s' argument would instead be 'check'):

$ tools/objtool/objtool -s arch/x86/lib/retpoline.o
arch/x86/lib/retpoline.o: warning: objtool: srso_untrain_ret+0xd:
    call without frame pointer save/setup

With this patch, the warning is correctly suppressed, and the
kernel still passes the normal Google kernel developer tests.

Signed-off-by: John Sperbeck <jsperbeck@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
tools/objtool/check.c

index 36ad0b6b94a91507f5ca0e442a0141c50851458f..c3bb96e5bfa64239c7055a9b80ff83ff7e755bf2 100644 (file)
@@ -2202,7 +2202,7 @@ static bool is_special_call(struct instruction *insn)
                if (!dest)
                        return false;
 
-               if (dest->fentry)
+               if (dest->fentry || dest->embedded_insn)
                        return true;
        }