summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorPetr Pavlu <petr.pavlu@suse.com>2026-01-23 11:26:57 +0100
committerJosh Poimboeuf <jpoimboe@kernel.org>2026-02-05 08:00:45 -0800
commitb525fcaf0a76507f152d58c6f9e5ef67b3ff552c (patch)
treef83ffd77f6e53652c52ffb1db86c13d3cd914705 /scripts
parentab10815472fcbc2c772dc21a979460b7f74f0145 (diff)
livepatch: Free klp_{object,func}_ext data after initialization
The klp_object_ext and klp_func_ext data, which are stored in the __klp_objects and __klp_funcs sections, respectively, are not needed after they are used to create the actual klp_object and klp_func instances. This operation is implemented by the init function in scripts/livepatch/init.c. Prefix the two sections with ".init" so they are freed after the module is initializated. 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-3-petr.pavlu@suse.com Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org>
Diffstat (limited to 'scripts')
-rw-r--r--scripts/livepatch/init.c2
-rw-r--r--scripts/module.lds.S4
2 files changed, 3 insertions, 3 deletions
diff --git a/scripts/livepatch/init.c b/scripts/livepatch/init.c
index 9e315fc857bd..638c95cffe76 100644
--- a/scripts/livepatch/init.c
+++ b/scripts/livepatch/init.c
@@ -19,7 +19,7 @@ static int __init livepatch_mod_init(void)
unsigned int nr_objs;
int ret;
- obj_exts = klp_find_section_by_name(THIS_MODULE, "__klp_objects",
+ obj_exts = klp_find_section_by_name(THIS_MODULE, ".init.klp_objects",
&obj_exts_sec_size);
nr_objs = obj_exts_sec_size / sizeof(*obj_exts);
if (!nr_objs) {
diff --git a/scripts/module.lds.S b/scripts/module.lds.S
index 383d19beffb4..054ef99e8288 100644
--- a/scripts/module.lds.S
+++ b/scripts/module.lds.S
@@ -34,8 +34,8 @@ SECTIONS {
__patchable_function_entries : { *(__patchable_function_entries) }
- __klp_funcs 0: ALIGN(8) { KEEP(*(__klp_funcs)) }
- __klp_objects 0: ALIGN(8) { KEEP(*(__klp_objects)) }
+ .init.klp_funcs 0 : ALIGN(8) { KEEP(*(.init.klp_funcs)) }
+ .init.klp_objects 0 : ALIGN(8) { KEEP(*(.init.klp_objects)) }
#ifdef CONFIG_ARCH_USES_CFI_TRAPS
__kcfi_traps : { KEEP(*(.kcfi_traps)) }