mirror of
https://github.com/torvalds/linux.git
synced 2026-05-12 16:18:45 +02:00
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:
|
||
|---|---|---|
| .. | ||
| atomic | ||
| bash-completion | ||
| basic | ||
| clang-tools | ||
| coccinelle | ||
| crypto | ||
| dtc | ||
| dummy-tools | ||
| gcc-plugins | ||
| gdb | ||
| gendwarfksyms | ||
| genksyms | ||
| include | ||
| ipe | ||
| kconfig | ||
| ksymoops | ||
| livepatch | ||
| mod | ||
| package | ||
| selinux | ||
| tracing | ||
| .gitignore | ||
| as-version.sh | ||
| asn1_compiler.c | ||
| bloat-o-meter | ||
| bootgraph.pl | ||
| bpf_doc.py | ||
| build-version | ||
| cc-can-link.sh | ||
| cc-version.sh | ||
| check_extable.sh | ||
| check-function-names.sh | ||
| check-git | ||
| check-sysctl-docs | ||
| check-uapi.sh | ||
| checkdeclares.pl | ||
| checkincludes.pl | ||
| checkkconfigsymbols.py | ||
| checkpatch.pl | ||
| checkstack.pl | ||
| checksyscalls.sh | ||
| checkversion.pl | ||
| cleanfile | ||
| cleanpatch | ||
| coccicheck | ||
| config | ||
| const_structs.checkpatch | ||
| decode_stacktrace.sh | ||
| decodecode | ||
| depmod.sh | ||
| dev-needs.sh | ||
| diffconfig | ||
| elf-parse.c | ||
| elf-parse.h | ||
| extract_xc3028.pl | ||
| extract-fwblobs | ||
| extract-ikconfig | ||
| extract-module-sig.pl | ||
| extract-sys-certs.pl | ||
| extract-vmlinux | ||
| faddr2line | ||
| 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 | ||
| generate_rust_target.rs | ||
| get_dvb_firmware | ||
| get_maintainer.pl | ||
| gfp-translate | ||
| git-resolve.sh | ||
| git.orderFile | ||
| head-object-list.txt | ||
| headerdep.pl | ||
| headers_install.sh | ||
| insert-sys-cert.c | ||
| install.sh | ||
| integer-wrap-ignore.scl | ||
| jobserver-exec | ||
| kallsyms.c | ||
| Kbuild.include | ||
| Kconfig.include | ||
| kernel-doc | ||
| kernel-doc.py | ||
| ld-version.sh | ||
| leaking_addresses.pl | ||
| Lindent | ||
| link-vmlinux.sh | ||
| macro_checker.py | ||
| make_fit.py | ||
| Makefile | ||
| Makefile.asm-headers | ||
| Makefile.autofdo | ||
| Makefile.btf | ||
| Makefile.build | ||
| Makefile.clang | ||
| Makefile.clean | ||
| Makefile.compiler | ||
| Makefile.debug | ||
| Makefile.defconf | ||
| Makefile.dtbinst | ||
| Makefile.dtbs | ||
| Makefile.gcc-plugins | ||
| Makefile.headersinst | ||
| Makefile.host | ||
| Makefile.kasan | ||
| Makefile.kcov | ||
| Makefile.kcsan | ||
| Makefile.kmsan | ||
| Makefile.kstack_erase | ||
| Makefile.lib | ||
| Makefile.modfinal | ||
| Makefile.modinst | ||
| Makefile.modpost | ||
| Makefile.package | ||
| Makefile.propeller | ||
| Makefile.randstruct | ||
| Makefile.ubsan | ||
| Makefile.userprogs | ||
| Makefile.vdsoinst | ||
| Makefile.vmlinux | ||
| Makefile.vmlinux_o | ||
| Makefile.warn | ||
| makelst | ||
| markup_oops.pl | ||
| min-tool-version.sh | ||
| misc-check | ||
| mkcompile_h | ||
| mksysmap | ||
| mkuboot.sh | ||
| module-common.c | ||
| module.lds.S | ||
| 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 | ||
| setlocalversion | ||
| show_delta | ||
| sign-file.c | ||
| sorttable.c | ||
| spdxcheck-test.sh | ||
| spdxcheck.py | ||
| spdxexclude | ||
| spelling.txt | ||
| ssl-common.h | ||
| stackdelta | ||
| stackusage | ||
| subarch.include | ||
| syscall.tbl | ||
| syscallhdr.sh | ||
| syscallnr.sh | ||
| syscalltbl.sh | ||
| tags.sh | ||
| tools-support-relr.sh | ||
| tracepoint-update.c | ||
| unifdef.c | ||
| ver_linux | ||
| verify_builtin_ranges.awk | ||
| xen-hypercalls.sh | ||
| xz_wrap.sh | ||