summaryrefslogtreecommitdiff
path: root/tools/objtool/Documentation
diff options
context:
space:
mode:
authorJosh Poimboeuf <jpoimboe@redhat.com>2019-05-13 20:01:32 +0300
committerIngo Molnar <mingo@kernel.org>2019-05-13 21:31:17 +0300
commite6f393bc939d566ce3def71232d8013de9aaadde (patch)
tree2829dfebc1b7fcc5b35e1b1c92af0e9cb0b54dec /tools/objtool/Documentation
parente6da9567959e164f82bc81967e0d5b10dee870b4 (diff)
downloadlinux-e6f393bc939d566ce3def71232d8013de9aaadde.tar.xz
objtool: Fix function fallthrough detection
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>
Diffstat (limited to 'tools/objtool/Documentation')
0 files changed, 0 insertions, 0 deletions