objtool: Fix rare switch jump table pattern detection
authorJosh Poimboeuf <jpoimboe@redhat.com>
Wed, 26 Oct 2016 15:34:08 +0000 (10:34 -0500)
committerIngo Molnar <mingo@kernel.org>
Thu, 27 Oct 2016 06:20:27 +0000 (08:20 +0200)
commit56fb2d6eb63acd48b50437b415b6f7d2fcffe75d
tree7bc98b13793bf28b02995a5352077f775f45f5b8
parent9fe68cad6e74967b88d0c6aeca7d9cd6b6e91942
objtool: Fix rare switch jump table pattern detection

The following commit:

  3732710ff6f2 ("objtool: Improve rare switch jump table pattern detection")

... improved objtool's ability to detect GCC switch statement jump
tables for GCC 6.  However the check to allow short jumps with the
scanned range of instructions wasn't quite right.  The pattern detection
should allow jumps to the indirect jump instruction itself.

This fixes the following warning:

  drivers/infiniband/sw/rxe/rxe_comp.o: warning: objtool: rxe_completer()+0x315: sibling call from callable instruction with changed frame pointer

Reported-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Fixes: 3732710ff6f2 ("objtool: Improve rare switch jump table pattern detection")
Link: http://lkml.kernel.org/r/20161026153408.2rifnw7bvoc5sex7@treble
Signed-off-by: Ingo Molnar <mingo@kernel.org>
tools/objtool/builtin-check.c