]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
objtool/klp: Fix bug table handling for __WARN_printf()
authorJosh Poimboeuf <jpoimboe@kernel.org>
Mon, 26 Jan 2026 05:56:39 +0000 (21:56 -0800)
committerJosh Poimboeuf <jpoimboe@kernel.org>
Tue, 27 Jan 2026 16:20:47 +0000 (08:20 -0800)
commitf2dba60339a6299e181671e95293efe312237e2d
tree930da55e368fd4d6a2a1176ff65dc24fe5f66c7c
parentd107b3265aa5e61a1e326b2815a767526ddb12ac
objtool/klp: Fix bug table handling for __WARN_printf()

Running objtool klp-diff on a changed function which uses WARN() can
fail with:

  vmlinux.o: error: objtool: md_run+0x866: failed to convert reloc sym '__bug_table' to its proper format

The problem is that since commit 5b472b6e5bd9 ("x86_64/bug: Implement
__WARN_printf()"), each __WARN_printf() call site now directly
references its bug table entry.  klp-diff errors out when it can't
convert such section-based references to object symbols (because bug
table entries don't have symbols).

Luckily, klp-diff already has code to create symbols for bug table
entries.  Move that code earlier, before function diffing.

Fixes: dd590d4d57eb ("objtool/klp: Introduce klp diff subcommand for diffing object files")
Fixes: 5b472b6e5bd9 ("x86_64/bug: Implement __WARN_printf()")
Reported-by: Song Liu <song@kernel.org>
Tested-by: Song Liu <song@kernel.org>
Link: https://patch.msgid.link/a8e0a714b9da962858842b9aecd63b4900927c88.1769406850.git.jpoimboe@kernel.org
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
tools/objtool/klp-diff.c