Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 92e8f204 authored by Josh Poimboeuf's avatar Josh Poimboeuf Committed by Greg Kroah-Hartman
Browse files

objtool: Fix retpoline support for pre-ORC objtool



Objtool 1.0 (pre-ORC) produces the following warning when it encounters
a retpoline:

  arch/x86/crypto/camellia-aesni-avx2-asm_64.o: warning: objtool: .altinstr_replacement+0xf: return instruction outside of a callable function

That warning is meant to catch GCC bugs and missing ENTRY/ENDPROC
annotations, neither of which are applicable to alternatives.  Silence
the warning for alternative instructions, just like objtool 2.0 already
does.

Reported-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
Signed-off-by: default avatarJosh Poimboeuf <jpoimboe@redhat.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 44f1eae7
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -1230,6 +1230,14 @@ static int validate_uncallable_instructions(struct objtool_file *file)

	for_each_insn(file, insn) {
		if (!insn->visited && insn->type == INSN_RETURN) {

			/*
			 * Don't warn about call instructions in unvisited
			 * retpoline alternatives.
			 */
			if (!strcmp(insn->sec->name, ".altinstr_replacement"))
				continue;

			WARN_FUNC("return instruction outside of a callable function",
				  insn->sec, insn->offset);
			warnings++;