diff options
| author | Joe Lawrence <joe.lawrence@redhat.com> | 2026-08-02 20:24:24 -0700 |
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2026-08-03 07:12:38 +0200 |
| commit | 8668bf91e0508abeb8e98b4edd89032be02228a1 (patch) | |
| tree | 01c6f105a650b8701ddc549da13a1811ebd535d3 /scripts/livepatch | |
| parent | 165affd6f095323d953b0ed5823ec4d0db3b7d0d (diff) | |
| download | linux-8668bf91e0508abeb8e98b4edd89032be02228a1.tar.gz linux-8668bf91e0508abeb8e98b4edd89032be02228a1.zip | |
objtool/klp: Normalize Module.symvers paths to module names
Module.symvers contains build-tree object paths as module identifiers
(e.g., "arch/x86/kvm/kvm") rather than runtime module names ("kvm").
Objtool's clone_reloc_klp() uses this field directly for exported
symbols, while unexported symbols correctly go through __find_modname().
This means that exported symbol relocations may land in a .klp.rela
section named with the build path rather than the module name. That is
a crash waiting to happen: the kernel's livepatch loader silently skips
this relocation because it doesn't match the expected klp_object name.
The unresolved relocation sits in the newly activated code, crashing
when executed.
Normalize export->mod at Module.symvers read time using the same logic
as __find_modname() (refactored into a shared normalize_modname()
helper).
Fixes: dd590d4d57eb ("objtool/klp: Introduce klp diff subcommand for diffing object files")
Reported-by: Ben Procknow <bprockno@redhat.com>
Signed-off-by: Joe Lawrence <joe.lawrence@redhat.com>
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Reviewed-by: Miroslav Benes <mbenes@suse.cz>
Cc: live-patching@vger.kernel.org
Link: https://patch.msgid.link/dbe1b72931bd3c31b751fd0729613d9f2226fff6.1785727106.git.jpoimboe@kernel.org
Diffstat (limited to 'scripts/livepatch')
0 files changed, 0 insertions, 0 deletions
