]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
samples/damon/mtier: support boot time enable setup
authorSeongJae Park <sj@kernel.org>
Sun, 6 Jul 2025 19:32:04 +0000 (12:32 -0700)
committerAndrew Morton <akpm@linux-foundation.org>
Sun, 13 Jul 2025 23:38:34 +0000 (16:38 -0700)
If 'enable' parameter of the 'mtier' DAMON sample module is set at boot
time via the kernel command line, memory allocation is tried before the
slab is initialized.  As a result kernel NULL pointer dereference BUG can
happen.  Fix it by checking the initialization status.

Link: https://lkml.kernel.org/r/20250706193207.39810-4-sj@kernel.org
Fixes: 82a08bde3cf7 ("samples/damon: implement a DAMON module for memory tiering")
Signed-off-by: SeongJae Park <sj@kernel.org>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
samples/damon/mtier.c

index 97892ade7f31382fbdd069ab6fdfd0a5030afd95..bc9d8195da873b6996862527516199fe3df28ade 100644 (file)
@@ -157,6 +157,8 @@ static void damon_sample_mtier_stop(void)
        damon_destroy_ctx(ctxs[1]);
 }
 
+static bool init_called;
+
 static int damon_sample_mtier_enable_store(
                const char *val, const struct kernel_param *kp)
 {
@@ -182,6 +184,14 @@ static int damon_sample_mtier_enable_store(
 
 static int __init damon_sample_mtier_init(void)
 {
+       int err = 0;
+
+       init_called = true;
+       if (enable) {
+               err = damon_sample_mtier_start();
+               if (err)
+                       enable = false;
+       }
        return 0;
 }