objtool: Support asm jump tables
authorJosh Poimboeuf <jpoimboe@redhat.com>
Wed, 24 Feb 2021 16:29:14 +0000 (10:29 -0600)
committerJosh Poimboeuf <jpoimboe@redhat.com>
Mon, 19 Apr 2021 17:36:32 +0000 (12:36 -0500)
commit99033461e685b48549ec77608b4bda75ddf772ce
tree07f19d4cb298b9b7fb1593cecf6287d83d696e7d
parent900b4df347bbac4874149a226143a556909faba8
objtool: Support asm jump tables

Objtool detection of asm jump tables would normally just work, except
for the fact that asm retpolines use alternatives.  Objtool thinks the
alternative code path (a jump to the retpoline) is a sibling call.

Don't treat alternative indirect branches as sibling calls when the
original instruction has a jump table.

Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Tested-by: Ard Biesheuvel <ardb@kernel.org>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Tested-by: Sami Tolvanen <samitolvanen@google.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
Link: https://lore.kernel.org/r/460cf4dc675d64e1124146562cabd2c05aa322e8.1614182415.git.jpoimboe@redhat.com
tools/objtool/check.c