]> Git Repo - linux.git/commit
kallsyms: Match symbols exactly with CONFIG_LTO_CLANG
authorSong Liu <[email protected]>
Wed, 7 Aug 2024 22:05:13 +0000 (15:05 -0700)
committerKees Cook <[email protected]>
Thu, 15 Aug 2024 16:33:35 +0000 (09:33 -0700)
commitfb6a421fb6153d97cf3058f9bd550b377b76a490
tree2b7d12e681ef5ed11ca5b9cb14ccf5bde56ec623
parent020925ce92990c3bf59ab2cde386ac6d9ec734ff
kallsyms: Match symbols exactly with CONFIG_LTO_CLANG

With CONFIG_LTO_CLANG=y, the compiler may add .llvm.<hash> suffix to
function names to avoid duplication. APIs like kallsyms_lookup_name()
and kallsyms_on_each_match_symbol() tries to match these symbol names
without the .llvm.<hash> suffix, e.g., match "c_stop" with symbol
c_stop.llvm.17132674095431275852. This turned out to be problematic
for use cases that require exact match, for example, livepatch.

Fix this by making the APIs to match symbols exactly.

Also cleanup kallsyms_selftests accordingly.

Signed-off-by: Song Liu <[email protected]>
Fixes: 8cc32a9bbf29 ("kallsyms: strip LTO-only suffixes from promoted global functions")
Tested-by: Masami Hiramatsu (Google) <[email protected]>
Reviewed-by: Masami Hiramatsu (Google) <[email protected]>
Acked-by: Petr Mladek <[email protected]>
Reviewed-by: Sami Tolvanen <[email protected]>
Reviewed-by: Luis Chamberlain <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Kees Cook <[email protected]>
kernel/kallsyms.c
kernel/kallsyms_selftest.c
This page took 0.065979 seconds and 4 git commands to generate.