| From: SeongJae Park <sj@kernel.org> |
| Subject: samples/damon/mtier: support boot time enable setup |
| Date: Sun, 6 Jul 2025 12:32:04 -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 | 10 ++++++++++ |
| 1 file changed, 10 insertions(+) |
| |
| --- a/samples/damon/mtier.c~samples-damon-mtier-support-boot-time-enable-setup |
| +++ a/samples/damon/mtier.c |
| @@ -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_sto |
| |
| 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; |
| } |
| |
| _ |