On Fri, Jul 01, 2022 at 04:47:42PM +0800, David Gow wrote:
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");
Signed-off-by: David Gow davidgow@google.com
This patch is new in v4 of this series.
kernel/module/main.c | 8 ++++++++ scripts/mod/modpost.c | 3 +++ 2 files changed, 11 insertions(+)
diff --git a/kernel/module/main.c b/kernel/module/main.c index fed58d30725d..f2ca0a3ee5e6 100644 --- a/kernel/module/main.c +++ b/kernel/module/main.c @@ -1988,6 +1988,14 @@ 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);
That seems pretty chatty, maybe just pr_warn_once() and make indicate which is the first one? For kernel builds where their goal is to just loop testing this will grow the kernel log without not much need.
Luis
add_taint_module(mod, TAINT_TEST, LOCKDEP_STILL_OK);
- }
- return 0;
} diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c index 29d5a841e215..5937212b4433 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -2191,6 +2191,9 @@ static void add_header(struct buffer *b, struct module *mod) if (strstarts(mod->name, "drivers/staging")) buf_printf(b, "\nMODULE_INFO(staging, "Y");\n");
- if (strstarts(mod->name, "tools/testing"))
buf_printf(b, "\nMODULE_INFO(test, \"Y\");\n");
Otherwise looks good, thanks for doing this!
Reviewed-by: Luis Chamberlain mcgrof@kernel.org
Luis