diff options
| author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2026-03-19 16:08:51 +0100 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2026-03-19 16:08:51 +0100 |
| commit | 1c6d58b8a03b656bfe4c6930a7d6052782c0bc89 (patch) | |
| tree | 70991c25d188f5b1cd6f5d84f9f352ec2fa2effa /mm/damon/core.c | |
| parent | 744943ac89cd209aec9414dd751c53528d5757e7 (diff) | |
| parent | 4aea1dc4cad17cd146072e13b1fd404f32b8b3ef (diff) | |
Merge v6.18.19linux-rolling-lts
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'mm/damon/core.c')
| -rw-r--r-- | mm/damon/core.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/mm/damon/core.c b/mm/damon/core.c index b787cdb07cb2..cee5320cd9a1 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -1236,6 +1236,9 @@ int damon_commit_ctx(struct damon_ctx *dst, struct damon_ctx *src) { int err; + if (!is_power_of_2(src->min_sz_region)) + return -EINVAL; + err = damon_commit_schemes(dst, src); if (err) return err; @@ -1526,8 +1529,13 @@ int damos_walk(struct damon_ctx *ctx, struct damos_walk_control *control) } ctx->walk_control = control; mutex_unlock(&ctx->walk_control_lock); - if (!damon_is_running(ctx)) + if (!damon_is_running(ctx)) { + mutex_lock(&ctx->walk_control_lock); + if (ctx->walk_control == control) + ctx->walk_control = NULL; + mutex_unlock(&ctx->walk_control_lock); return -EINVAL; + } wait_for_completion(&control->completion); if (control->canceled) return -ECANCELED; |
