dragonheart_kernel_oneplus_.../tools
Josh Poimboeuf 6bcf3b066c objtool: Fix "noreturn" detection for recursive sibling calls
commit 0afd0d9e0e7879d666c1df2fa1bea4d8716909fe upstream.

Objtool has some crude logic for detecting static "noreturn" functions
(aka "dead ends").  This is necessary for being able to correctly follow
GCC code flow when such functions are called.

It's remotely possible for two functions to call each other via sibling
calls.  If they don't have RET instructions, objtool's noreturn
detection logic goes into a recursive loop:

  drivers/char/ipmi/ipmi_ssif.o: warning: objtool: return_hosed_msg()+0x0: infinite recursion (objtool bug!)
  drivers/char/ipmi/ipmi_ssif.o: warning: objtool: deliver_recv_msg()+0x0: infinite recursion (objtool bug!)

Instead of reporting an error in this case, consider the functions to be
non-dead-ends.

Reported-and-tested-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: David Laight <David.Laight@ACULAB.COM>
Cc: Greg KH <gregkh@linuxfoundation.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: damian <damian.tometzki@icloud.com>
Link: http://lkml.kernel.org/r/7cc156408c5781a1f62085d352ced1fe39fe2f91.1525923412.git.jpoimboe@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-06-05 11:41:55 +02:00
..
accounting
arch tools: sync up .h files with the repective arch and uapi .h files 2018-05-30 12:19:59 +02:00
build
cgroup
firewire
gpio
hv tools: hv: fix compiler warnings about major/target_fname 2018-05-30 07:52:36 +02:00
iio
include tools: sync up .h files with the repective arch and uapi .h files 2018-05-30 12:19:59 +02:00
kvm/kvm_stat
laptop
leds
lib tools/lib/subcmd/pager.c: do not alias select() params 2018-05-01 12:58:25 -07:00
net
nfsd
objtool objtool: Fix "noreturn" detection for recursive sibling calls 2018-06-05 11:41:55 +02:00
pci
pcmcia
perf Revert "perf record: Fix crash in pipe mode" 2018-05-30 12:19:59 +02:00
power
scripts
spi
testing selftests/net: fixes psock_fanout eBPF test case 2018-05-30 07:52:40 +02:00
thermal/tmon tools/thermal: tmon: fix for segfault 2018-05-30 07:52:28 +02:00
time
usb
virtio
vm
Makefile