aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/module
diff options
context:
space:
mode:
authorDavid Gow <davidgow@google.com>2022-07-08 12:48:45 +0800
committerShuah Khan <skhan@linuxfoundation.org>2022-07-11 16:58:00 -0600
commit74829ddf5977567d77440150d72d4c0c5c427446 (patch)
treeac4cbaf10797593b03ebde953da58afa4070ff23 /kernel/module
parent77ce8ba3f069c10197bc354662eab09faa5693e2 (diff)
downloadlinux-74829ddf5977567d77440150d72d4c0c5c427446.tar.gz
module: panic: Taint the kernel when selftest modules load
Taint the kernel with TAINT_TEST whenever a test module loads, by adding a new "TEST" module property, and setting it for all modules in the tools/testing directory. This property can also be set manually, for tests which live outside the tools/testing directory with: MODULE_INFO(test, "Y"); Reviewed-by: Luis Chamberlain <mcgrof@kernel.org> Reviewed-by: Aaron Tomlin <atomlin@redhat.com> Acked-by: Brendan Higgins <brendanhiggins@google.com> Signed-off-by: David Gow <davidgow@google.com> Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
Diffstat (limited to 'kernel/module')
-rw-r--r--kernel/module/main.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/kernel/module/main.c b/kernel/module/main.c
index fed58d30725de..4723f13167095 100644
--- a/kernel/module/main.c
+++ b/kernel/module/main.c
@@ -1988,6 +1988,13 @@ static int check_modinfo(struct module *mod, struct load_info *info, int flags)
/* Set up license info based on the info section */
set_license(mod, get_modinfo(info, "license"));
+ if (get_modinfo(info, "test")) {
+ if (!test_taint(TAINT_TEST))
+ pr_warn("%s: loading test module taints kernel.\n",
+ mod->name);
+ add_taint_module(mod, TAINT_TEST, LOCKDEP_STILL_OK);
+ }
+
return 0;
}