module: split taint work out of check_modinfo_livepatch()
authorLuis Chamberlain <mcgrof@kernel.org>
Sun, 19 Mar 2023 21:27:41 +0000 (14:27 -0700)
committerLuis Chamberlain <mcgrof@kernel.org>
Fri, 24 Mar 2023 18:33:08 +0000 (11:33 -0700)
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>
kernel/module/main.c

index 5e64485..cfb2ff5 100644 (file)
@@ -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")) {