android_kernel_sony_sdm845/tools
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Josh Poimboeuf 15e6da9ae5 objtool: Fix function fallthrough detection
commit e6f393bc939d566ce3def71232d8013de9aaadde upstream.

When a function falls through to the next function due to a compiler
bug, objtool prints some obscure warnings.  For example:

  drivers/regulator/core.o: warning: objtool: regulator_count_voltages()+0x95: return with modified stack frame
  drivers/regulator/core.o: warning: objtool: regulator_count_voltages()+0x0: stack state mismatch: cfa1=7+32 cfa2=7+8

Instead it should be printing:

  drivers/regulator/core.o: warning: objtool: regulator_supply_is_couple() falls through to next function regulator_count_voltages()

This used to work, but was broken by the following commit:

  13810435b9a7 ("objtool: Support GCC 8's cold subfunctions")

The padding nops at the end of a function aren't actually part of the
function, as defined by the symbol table.  So the 'func' variable in
validate_branch() is getting cleared to NULL when a padding nop is
encountered, breaking the fallthrough detection.

If the current instruction doesn't have a function associated with it,
just consider it to be part of the previously detected function by not
overwriting the previous value of 'func'.

Reported-by: kbuild test robot <lkp@intel.com>
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>
Cc: <stable@vger.kernel.org>
Fixes: 13810435b9a7 ("objtool: Support GCC 8's cold subfunctions")
Link: http://lkml.kernel.org/r/546d143820cd08a46624ae8440d093dd6c902cae.1557766718.git.jpoimboe@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-05-21 18:48:56 +02:00
..
accounting tools: move accounting tool from Documentation 2016-09-23 13:07:15 -06:00
arch x86/fpu: Finish excising 'eagerfpu' 2018-10-13 09:18:59 +02:00
build tools: build: Use HOSTLDFLAGS with fixdep 2018-08-24 13:12:39 +02:00
cgroup
firewire
gpio tools/gpio: Fix build error with musl libc 2018-02-03 17:05:34 +01:00
hv Tools: hv: Fix a bug in the key delete code 2018-09-26 08:36:35 +02:00
iio Second set of iio new device support, features and cleanups for the 4.9 cycle. 2016-09-14 20:42:03 +02:00
include perf/tools: header file sync up 2018-06-05 10:28:58 +02:00
kvm/kvm_stat tools: kvm_stat: Add comments 2016-05-25 16:12:06 +02:00
laptop tools: move laptops dslm tool from Documentation 2016-09-23 13:07:21 -06:00
lguest tools/lguest: Don't bork the terminal in case of wrong args 2016-09-08 08:05:24 +02:00
lib tools lib traceevent: Fix missing equality check for strcmp 2019-05-16 19:43:42 +02:00
net
nfsd
objtool objtool: Fix function fallthrough detection 2019-05-21 18:48:56 +02:00
pcmcia tools: move pcmcia crc32hash tool from Documentation 2016-09-23 13:07:27 -06:00
perf perf tests: Fix a memory leak in test__perf_evsel__tp_sched_test() 2019-04-20 09:07:49 +02:00
power x86/msr-index: Cleanup bit defines 2019-05-14 19:19:39 +02:00
scripts Kbuild: fix # escaping in .cmd files for future Make 2018-07-11 16:26:45 +02:00
spi Merge remote-tracking branches 'spi/topic/ti-qspi', 'spi/topic/tools', 'spi/topic/txx9' and 'spi/topic/xlp' into spi-next 2016-09-30 09:14:22 -07:00
testing selftests/net: correct the return value for run_netsocktests 2019-05-16 19:43:43 +02:00
thermal/tmon tools/thermal: tmon: fix for segfault 2018-05-30 07:50:43 +02:00
time
usb tools: usb: ffs-test: Fix build on big endian systems 2018-09-05 09:20:00 +02:00
virtio ptr_ring: fix up after recent ptr_ring changes 2018-11-10 07:42:50 -08:00
vm tools/vm/page-types.c: fix "defined but not used" warning 2018-10-10 08:53:20 +02:00
Makefile tools/gpio: add install section 2016-06-23 11:07:13 +02:00