aboutsummaryrefslogtreecommitdiffstats
path: root/mm/damon/sysfs.c
diff options
context:
space:
mode:
authorSeongJae Park <sj@kernel.org>2022-05-09 18:20:55 -0700
committerAndrew Morton <akpm@linux-foundation.org>2022-05-13 07:20:08 -0700
commit0a890a9faaad3bfb7fa4087c4d35e2ea3527013b (patch)
treea3ee7e296cce65a76dca9c0e69701be24ebb5620 /mm/damon/sysfs.c
parentmm/damon/vaddr: remove damon_va_apply_three_regions() (diff)
downloadlinux-dev-0a890a9faaad3bfb7fa4087c4d35e2ea3527013b.tar.xz
linux-dev-0a890a9faaad3bfb7fa4087c4d35e2ea3527013b.zip
mm/damon/sysfs: prohibit multiple physical address space monitoring targets
Having multiple targets for physical address space monitoring makes no sense. This commit prohibits such a ridiculous DAMON context setup my making the DAMON context build function to check and return an error for the case. Link: https://lkml.kernel.org/r/20220429160606.127307-7-sj@kernel.org Signed-off-by: SeongJae Park <sj@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to '')
-rw-r--r--mm/damon/sysfs.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/mm/damon/sysfs.c b/mm/damon/sysfs.c
index f753bb405101..3d2da791ebd8 100644
--- a/mm/damon/sysfs.c
+++ b/mm/damon/sysfs.c
@@ -2125,6 +2125,10 @@ static int damon_sysfs_set_targets(struct damon_ctx *ctx,
{
int i, err;
+ /* Multiple physical address space monitoring targets makes no sense */
+ if (ctx->ops.id == DAMON_OPS_PADDR && sysfs_targets->nr > 1)
+ return -EINVAL;
+
for (i = 0; i < sysfs_targets->nr; i++) {
struct damon_sysfs_target *sys_target =
sysfs_targets->targets_arr[i];