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 ---
I think 6.1.y, 5.15.y, and 5.10.y are the LTS branches missing the bit of code that this patch re-adds.
Changes from v1 to v2: * include more context in the commit message.
tools/objtool/check.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/objtool/check.c b/tools/objtool/check.c index f8008ab31eef..cb363b507a32 100644 --- a/tools/objtool/check.c +++ b/tools/objtool/check.c @@ -2478,7 +2478,7 @@ static bool is_special_call(struct instruction *insn) if (!dest) return false;
- if (dest->fentry) + if (dest->fentry || dest->embedded_insn) return true; }
Hi,
Thanks for your patch.
FYI: kernel test robot notices the stable kernel rule is not satisfied.
The check is based on https://www.kernel.org/doc/html/latest/process/stable-kernel-rules.html#opti...
Rule: add the tag "Cc: stable@vger.kernel.org" in the sign-off area to have the patch automatically included in the stable tree. Subject: [PATCH v2] objtool/x86: add missing embedded_insn check Link: https://lore.kernel.org/stable/20231028184131.2103810-1-jsperbeck%40google.c...
linux-stable-mirror@lists.linaro.org