damon_target->nr_regions is introduced to get the number quickly without
having to iterate regions always. Add a sanity check for that under
CONFIG_DAMON_DEBUG_SANITY.
Link: https://lkml.kernel.org/r/20260306152914.86303-5-sj@kernel.org
Signed-off-by: SeongJae Park <sj@kernel.org>
Cc: Brendan Higgins <brendan.higgins@linux.dev>
Cc: David Gow <davidgow@google.com>
Cc: Shuah Khan <shuah@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
damon_free_target(t);
}
+#ifdef CONFIG_DAMON_DEBUG_SANITY
+static void damon_verify_nr_regions(struct damon_target *t)
+{
+ struct damon_region *r;
+ unsigned int count = 0;
+
+ damon_for_each_region(r, t)
+ count++;
+ WARN_ONCE(count != t->nr_regions, "t->nr_regions (%u) != count (%u)\n",
+ t->nr_regions, count);
+}
+#else
+static void damon_verify_nr_regions(struct damon_target *t)
+{
+}
+#endif
+
unsigned int damon_nr_regions(struct damon_target *t)
{
+ damon_verify_nr_regions(t);
+
return t->nr_regions;
}