linux/scripts
Petr Pavlu ab10815472 livepatch: Fix having __klp_objects relics in non-livepatch modules
The linker script scripts/module.lds.S specifies that all input
__klp_objects sections should be consolidated into an output section of
the same name, and start/stop symbols should be created to enable
scripts/livepatch/init.c to locate this data.

This start/stop pattern is not ideal for modules because the symbols are
created even if no __klp_objects input sections are present.
Consequently, a dummy __klp_objects section also appears in the
resulting module. This unnecessarily pollutes non-livepatch modules.

Instead, since modules are relocatable files, the usual method for
locating consolidated data in a module is to read its section table.
This approach avoids the aforementioned problem.

The klp_modinfo already stores a copy of the entire section table with
the final addresses. Introduce a helper function that
scripts/livepatch/init.c can call to obtain the location of the
__klp_objects section from this data.

Fixes: dd590d4d57 ("objtool/klp: Introduce klp diff subcommand for diffing object files")
Signed-off-by: Petr Pavlu <petr.pavlu@suse.com>
Acked-by: Joe Lawrence <joe.lawrence@redhat.com>
Acked-by: Miroslav Benes <mbenes@suse.cz>
Reviewed-by: Aaron Tomlin <atomlin@atomlin.com>
Link: https://patch.msgid.link/20260123102825.3521961-2-petr.pavlu@suse.com
Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
2026-02-05 08:00:44 -08:00
..
atomic atomic: Skip alignment check for try_cmpxchg() old arg 2025-10-21 12:31:56 +02:00
bash-completion
basic
clang-tools Revert "scripts/clang-tools: Handle included .c files in gen_compile_commands" 2025-12-27 20:48:01 +01:00
coccinelle Coccinelle: pm_runtime: Fix typo in report message 2025-12-21 21:04:52 +01:00
crypto lib/crypto: tests: Fix syntax error for old python versions 2026-01-08 11:14:59 -08:00
dtc scripts: dt_to_config: fix grammar and a typo in --help text 2025-09-26 15:53:30 -05:00
dummy-tools
gcc-plugins gcc-plugins: Remove TODO_verify_il for GCC >= 16 2025-09-23 13:59:39 -07:00
gdb scripts/gdb/symbols: make BPF debug info available to GDB 2025-11-20 14:03:42 -08:00
gendwarfksyms gendwarfksyms: Skip files with no exports 2025-11-11 20:37:11 +01:00
genksyms
include
ipe
kconfig kconfig/nconf: Initialize the default locale at startup 2025-11-01 00:23:22 -04:00
ksymoops
livepatch livepatch: Fix having __klp_objects relics in non-livepatch modules 2026-02-05 08:00:44 -08:00
mod mcb: Add missing modpost build support 2025-12-27 20:48:01 +01:00
package kbuild: install-extmod-build: Properly fix CC expansion when ccache is used 2025-11-11 22:31:34 -07:00
selinux
tracing
.gitignore scripts: add tracepoint-update to the list of ignores files 2025-10-29 08:46:05 -04:00
as-version.sh
asn1_compiler.c
bloat-o-meter
bootgraph.pl
bpf_doc.py bpf: Finish constification of 1st parameter of bpf_d_path() 2025-10-04 09:05:23 -07:00
build-version
cc-can-link.sh kbuild: don't enable CC_CAN_LINK if the dummy program generates warnings 2025-11-14 20:20:34 +01:00
cc-version.sh
check_extable.sh
check-function-names.sh kbuild: Check for functions with ambiguous -ffunction-sections section names 2025-11-21 10:04:10 +01:00
check-git
check-sysctl-docs
check-uapi.sh
checkdeclares.pl
checkincludes.pl
checkkconfigsymbols.py
checkpatch.pl checkpatch: add uninitialized pointer with __free attribute check 2025-12-10 16:07:42 -08:00
checkstack.pl
checksyscalls.sh
checkversion.pl
cleanfile
cleanpatch
coccicheck scripts: coccicheck: filter *.cocci files by MODE 2025-12-21 21:04:45 +01:00
config
const_structs.checkpatch
decode_stacktrace.sh scripts/decode_stacktrace.sh: fix build ID and PC source parsing 2025-11-09 21:19:45 -08:00
decodecode
depmod.sh
dev-needs.sh
diffconfig
elf-parse.c sorttable: Move ELF parsing into scripts/elf-parse.[ch] 2025-10-24 16:43:14 -04:00
elf-parse.h sorttable: Move ELF parsing into scripts/elf-parse.[ch] 2025-10-24 16:43:14 -04:00
extract_xc3028.pl
extract-fwblobs
extract-ikconfig
extract-module-sig.pl
extract-sys-certs.pl
extract-vmlinux
faddr2line scripts/faddr2line: Fix "Argument list too long" error 2025-10-14 14:45:20 -07:00
file-size.sh
gen_packed_field_checks.c
gen-crc-consts.py
gen-randstruct-seed.sh
generate_builtin_ranges.awk
generate_initcall_order.pl
generate_rust_analyzer.py rust: macros: support proc-macro2, quote and syn 2025-11-24 17:15:50 +01:00
generate_rust_target.rs rust: support Rust >= 1.91.0 target spec 2025-08-31 23:34:34 +02:00
get_dvb_firmware
get_maintainer.pl
gfp-translate
git-resolve.sh
git.orderFile
head-object-list.txt
headerdep.pl
headers_install.sh scripts: headers_install.sh: Remove two outdated config leak ignore entries 2025-11-11 16:01:13 +01:00
insert-sys-cert.c
install.sh
integer-wrap-ignore.scl
jobserver-exec docs: Move the python libraries to tools/lib/python 2025-11-18 09:22:40 -07:00
kallsyms.c
Kbuild.include
Kconfig.include init: deduplicate cc-can-link.sh invocations 2025-11-14 20:20:34 +01:00
kernel-doc
kernel-doc.py docs: bring some order to our Python module hierarchy 2025-11-18 09:22:40 -07:00
ld-version.sh
leaking_addresses.pl
Lindent
link-vmlinux.sh Detect unused tracepoints for v6.19: 2025-12-05 09:37:41 -08:00
macro_checker.py
make_fit.py
Makefile tracing: Add a tracepoint verification check at build time 2025-10-24 16:43:14 -04:00
Makefile.asm-headers
Makefile.autofdo
Makefile.btf
Makefile.build kbuild: fix compilation of dtb specified on command-line without make rule 2025-12-27 20:48:01 +01:00
Makefile.clang
Makefile.clean
Makefile.compiler
Makefile.debug
Makefile.defconf
Makefile.dtbinst
Makefile.dtbs kbuild: Ensure .dtbo targets are applied to a base .dtb 2025-11-17 11:27:52 -06:00
Makefile.gcc-plugins
Makefile.headersinst
Makefile.host
Makefile.kasan
Makefile.kcov
Makefile.kcsan
Makefile.kmsan
Makefile.kstack_erase
Makefile.lib objtool/klp: Only enable --checksum when needed 2025-11-18 09:59:26 +01:00
Makefile.modfinal tracing: Add warnings for unused tracepoints for modules 2025-10-24 16:43:15 -04:00
Makefile.modinst kbuild: Use objtree for module signing key path 2025-11-08 12:17:58 +01:00
Makefile.modpost
Makefile.package kbuild: add target to build a cpio containing modules 2025-11-26 21:56:14 +01:00
Makefile.propeller
Makefile.randstruct
Makefile.ubsan
Makefile.userprogs
Makefile.vdsoinst
Makefile.vmlinux kbuild: Strip trailing padding bytes from modules.builtin.modinfo 2025-11-06 09:50:23 -07:00
Makefile.vmlinux_o kbuild: Check for functions with ambiguous -ffunction-sections section names 2025-11-21 10:04:10 +01:00
Makefile.warn kbuild: Rename Makefile.extrawarn to Makefile.warn 2025-11-08 12:17:59 +01:00
makelst
markup_oops.pl
min-tool-version.sh
misc-check
mkcompile_h
mksysmap modpost: Create modalias for builtin modules 2025-09-24 09:10:45 -07:00
mkuboot.sh
module-common.c
module.lds.S livepatch: Fix having __klp_objects relics in non-livepatch modules 2026-02-05 08:00:44 -08:00
modules-check.sh
nsdeps
objdiff
objdump-func
orc_hash.sh
pahole-version.sh
parse-maintainers.pl
patch-kernel
profile2linkerlist.pl
prune-kernel
recordmcount.c
recordmcount.h
recordmcount.pl
relocs_check.sh
remove-stale-files
rust_is_available_bindgen_0_66.h
rust_is_available_bindgen_libclang_concat.h
rust_is_available_bindgen_libclang.h
rust_is_available_test.py
rust_is_available.sh
rustc-llvm-version.sh
rustc-version.sh
rustdoc_test_builder.rs
rustdoc_test_gen.rs rust: allow clippy::disallowed_names for doctests 2025-11-17 22:53:27 +01:00
setlocalversion
show_delta
sign-file.c
sorttable.c sorttable: Move ELF parsing into scripts/elf-parse.[ch] 2025-10-24 16:43:14 -04:00
spdxcheck-test.sh
spdxcheck.py treewide: Update email address 2026-01-11 06:09:11 -10:00
spdxexclude
spelling.txt
ssl-common.h
stackdelta
stackusage
subarch.include
syscall.tbl arch: hookup listns() system call 2025-11-03 17:41:18 +01:00
syscallhdr.sh
syscallnr.sh
syscalltbl.sh
tags.sh
tools-support-relr.sh
tracepoint-update.c tracing: Fix unused tracepoints when module uses only exported ones 2025-12-09 21:16:07 -05:00
unifdef.c
ver_linux
verify_builtin_ranges.awk
xen-hypercalls.sh
xz_wrap.sh