diff options
Diffstat (limited to 'samples/damon')
-rw-r--r-- | samples/damon/mtier.c | 12 | ||||
-rw-r--r-- | samples/damon/prcl.c | 12 | ||||
-rw-r--r-- | samples/damon/wsse.c | 12 |
3 files changed, 27 insertions, 9 deletions
diff --git a/samples/damon/mtier.c b/samples/damon/mtier.c index 7ebd352138e4..775838a23d93 100644 --- a/samples/damon/mtier.c +++ b/samples/damon/mtier.c @@ -193,8 +193,6 @@ 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) { @@ -208,6 +206,9 @@ static int damon_sample_mtier_enable_store( if (enabled == is_enabled) return 0; + if (!damon_initialized()) + return 0; + if (enabled) { err = damon_sample_mtier_start(); if (err) @@ -222,7 +223,12 @@ static int __init damon_sample_mtier_init(void) { int err = 0; - init_called = true; + if (!damon_initialized()) { + if (enabled) + enabled = false; + return -ENOMEM; + } + if (enabled) { err = damon_sample_mtier_start(); if (err) diff --git a/samples/damon/prcl.c b/samples/damon/prcl.c index 1b839c06a612..b7c50f2656ce 100644 --- a/samples/damon/prcl.c +++ b/samples/damon/prcl.c @@ -122,8 +122,6 @@ static void damon_sample_prcl_stop(void) } } -static bool init_called; - static int damon_sample_prcl_enable_store( const char *val, const struct kernel_param *kp) { @@ -137,6 +135,9 @@ static int damon_sample_prcl_enable_store( if (enabled == is_enabled) return 0; + if (!damon_initialized()) + return 0; + if (enabled) { err = damon_sample_prcl_start(); if (err) @@ -151,7 +152,12 @@ static int __init damon_sample_prcl_init(void) { int err = 0; - init_called = true; + if (!damon_initialized()) { + if (enabled) + enabled = false; + return -ENOMEM; + } + if (enabled) { err = damon_sample_prcl_start(); if (err) diff --git a/samples/damon/wsse.c b/samples/damon/wsse.c index da052023b099..799ad4443943 100644 --- a/samples/damon/wsse.c +++ b/samples/damon/wsse.c @@ -102,8 +102,6 @@ static void damon_sample_wsse_stop(void) } } -static bool init_called; - static int damon_sample_wsse_enable_store( const char *val, const struct kernel_param *kp) { @@ -117,6 +115,9 @@ static int damon_sample_wsse_enable_store( if (enabled == is_enabled) return 0; + if (!damon_initialized()) + return 0; + if (enabled) { err = damon_sample_wsse_start(); if (err) @@ -131,7 +132,12 @@ static int __init damon_sample_wsse_init(void) { int err = 0; - init_called = true; + if (!damon_initialized()) { + err = -ENOMEM; + if (enabled) + enabled = false; + } + if (enabled) { err = damon_sample_wsse_start(); if (err) |