]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mm/damon/stat: use damon_initialized()
authorSeongJae Park <sj@kernel.org>
Tue, 16 Sep 2025 03:35:06 +0000 (20:35 -0700)
committerAndrew Morton <akpm@linux-foundation.org>
Sun, 21 Sep 2025 21:22:37 +0000 (14:22 -0700)
DAMON_STAT is assuming DAMON is ready to use in module_init time, and uses
its own hack to see if it is the time.  Use damon_initialized(), which is
a way for seeing if DAMON is ready to be used that is more reliable and
better to maintain instead of the hack.

Link: https://lkml.kernel.org/r/20250916033511.116366-3-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/damon/stat.c

index 87bcd8866d4b70cd455c487fd2819f1fb858ca07..c4fbd8cfa5eb62da0ed3a474c4fef184a2099842 100644 (file)
@@ -214,8 +214,6 @@ static void damon_stat_stop(void)
        damon_destroy_ctx(damon_stat_context);
 }
 
-static bool damon_stat_init_called;
-
 static int damon_stat_enabled_store(
                const char *val, const struct kernel_param *kp)
 {
@@ -229,7 +227,7 @@ static int damon_stat_enabled_store(
        if (is_enabled == enabled)
                return 0;
 
-       if (!damon_stat_init_called)
+       if (!damon_initialized())
                /*
                 * probably called from command line parsing (parse_args()).
                 * Cannot call damon_new_ctx().  Let damon_stat_init() handle.
@@ -250,12 +248,16 @@ static int __init damon_stat_init(void)
 {
        int err = 0;
 
-       damon_stat_init_called = true;
+       if (!damon_initialized()) {
+               err = -ENOMEM;
+               goto out;
+       }
 
        /* probably set via command line */
        if (enabled)
                err = damon_stat_start();
 
+out:
        if (err && enabled)
                enabled = false;
        return err;