[PATCH 4/4] mm/damon/vaddr: indicate the target is invalid when 'nr_regions' is zero

From: xiakaixu1987
Date: Tue Sep 13 2022 - 05:12:55 EST


From: Kaixu Xia <kaixuxia@xxxxxxxxxxx>

When 'init()' and 'update()' DAMON operations failed and the number
of the damon_target regions is zero, the kdamond would do nothing
to this monitoring target in this case. It makes no sense to run
kdamond when all of monitoring targets have no regions. So add the
judgement in 'target_valid()' operation to indicate the target is
invalid when 'nr_regions' is zero.

Signed-off-by: Kaixu Xia <kaixuxia@xxxxxxxxxxx>
---
mm/damon/vaddr.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/mm/damon/vaddr.c b/mm/damon/vaddr.c
index 39ea48d9cc15..65ff98d49ec0 100644
--- a/mm/damon/vaddr.c
+++ b/mm/damon/vaddr.c
@@ -598,6 +598,9 @@ static bool damon_va_target_valid(void *target)
struct damon_target *t = target;
struct task_struct *task;

+ if (!damon_nr_regions(t))
+ return false;
+
task = damon_get_task_struct(t);
if (task) {
put_task_struct(task);
--
2.27.0