summaryrefslogtreecommitdiffstats
path: root/kernel/module/main.c
diff options
context:
space:
mode:
authorLuis Chamberlain <mcgrof@kernel.org>2023-03-19 22:27:41 +0100
committerLuis Chamberlain <mcgrof@kernel.org>2023-03-24 19:33:08 +0100
commited52cabecb7a7e4242cee9c370c2622a47177d5d (patch)
tree09e0489286c4af1d2dce2e0ad8a4feaeb80e761a /kernel/module/main.c
parentmodule: rename set_license() to module_license_taint_check() (diff)
downloadlinux-ed52cabecb7a7e4242cee9c370c2622a47177d5d.tar.xz
linux-ed52cabecb7a7e4242cee9c370c2622a47177d5d.zip
module: split taint work out of check_modinfo_livepatch()
The work to taint the kernel due to a module should be split up eventually. To aid with this, split up the tainting on check_modinfo_livepatch(). This let's us bring more early checks together which do return a value, and makes changes easier to read later where we stuff all the work to do the taints in one single routine. Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
Diffstat (limited to 'kernel/module/main.c')
-rw-r--r--kernel/module/main.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/kernel/module/main.c b/kernel/module/main.c
index 5e64485ac05a..cfb2ff5185fe 100644
--- a/kernel/module/main.c
+++ b/kernel/module/main.c
@@ -1808,12 +1808,8 @@ static int check_modinfo_livepatch(struct module *mod, struct load_info *info)
/* Nothing more to do */
return 0;
- if (set_livepatch_module(mod)) {
- add_taint_module(mod, TAINT_LIVEPATCH, LOCKDEP_STILL_OK);
- pr_notice_once("%s: tainting kernel with TAINT_LIVEPATCH\n",
- mod->name);
+ if (set_livepatch_module(mod))
return 0;
- }
pr_err("%s: module is marked as livepatch module, but livepatch support is disabled",
mod->name);
@@ -1993,6 +1989,11 @@ static int check_modinfo(struct module *mod, struct load_info *info, int flags)
if (err)
return err;
+ if (is_livepatch_module(mod)) {
+ add_taint_module(mod, TAINT_LIVEPATCH, LOCKDEP_STILL_OK);
+ pr_notice_once("%s: tainting kernel with TAINT_LIVEPATCH\n",
+ mod->name);
+ }
module_license_taint_check(mod, get_modinfo(info, "license"));
if (get_modinfo(info, "test")) {