projects
/
linux-2.6-microblaze.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
097fd00
)
module: Don't fail module loading when setting ro_after_init section RO failed
author
Christophe Leroy
<christophe.leroy@csgroup.eu>
Thu, 5 Dec 2024 19:46:16 +0000
(20:46 +0100)
committer
Petr Pavlu
<petr.pavlu@suse.com>
Sun, 26 Jan 2025 12:05:24 +0000
(13:05 +0100)
Once module init has succeded it is too late to cancel loading.
If setting ro_after_init data section to read-only fails, all we
can do is to inform the user through a warning.
Reported-by: Thomas Gleixner <tglx@linutronix.de>
Closes: https://lore.kernel.org/all/
20230915082126
.
4187913
-1-ruanjinjie@huawei.com/
Fixes:
d1909c022173
("module: Don't ignore errors from set_memory_XX()")
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Reviewed-by: Luis Chamberlain <mcgrof@kernel.org>
Link:
https://lore.kernel.org/r/d6c81f38da76092de8aacc8c93c4c65cb0fe48b8.1733427536.git.christophe.leroy@csgroup.eu
Signed-off-by: Petr Pavlu <petr.pavlu@suse.com>
kernel/module/main.c
patch
|
blob
|
history
diff --git
a/kernel/module/main.c
b/kernel/module/main.c
index
8acec43
..
8808b69
100644
(file)
--- a/
kernel/module/main.c
+++ b/
kernel/module/main.c
@@
-2955,7
+2955,10
@@
static noinline int do_init_module(struct module *mod)
#endif
ret = module_enable_rodata_ro_after_init(mod);
if (ret)
- goto fail_mutex_unlock;
+ pr_warn("%s: module_enable_rodata_ro_after_init() returned %d, "
+ "ro_after_init data might still be writable\n",
+ mod->name, ret);
+
mod_tree_remove_init(mod);
module_arch_freeing_init(mod);
for_class_mod_mem_type(type, init) {
@@
-2994,8
+2997,6
@@
static noinline int do_init_module(struct module *mod)
return 0;
-fail_mutex_unlock:
- mutex_unlock(&module_mutex);
fail_free_freeinit:
kfree(freeinit);
fail: