Currently, DAMON defines two identical structures for representing address
ranges: damon_system_ram_region and damon_addr_range. Both structures
share the same semantic interpretation of a half-open interval [start,
end), where the start address is inclusive and the end address is
exclusive.
This duplication adds unnecessary redundancy and increases maintenance
overhead. This patch replaces all uses of damon_system_ram_region with
the more generic damon_addr_range structure, ensuring a unified type
representation for address ranges within the DAMON subsystem. The change
simplifies the codebase, improves readability, and avoids potential
inconsistencies in future modifications.
Link: https://lkml.kernel.org/r/20260129100845.281734-1-lienze@kylinos.cn
Signed-off-by: Enze Li <lienze@kylinos.cn>
Reviewed-by: SeongJae Park <sj@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
return 0;
}
-/*
- * struct damon_system_ram_region - System RAM resource address region of
- * [@start, @end).
- * @start: Start address of the region (inclusive).
- * @end: End address of the region (exclusive).
- */
-struct damon_system_ram_region {
- unsigned long start;
- unsigned long end;
-};
-
static int walk_system_ram(struct resource *res, void *arg)
{
- struct damon_system_ram_region *a = arg;
+ struct damon_addr_range *a = arg;
if (a->end - a->start < resource_size(res)) {
a->start = res->start;
unsigned long *end)
{
- struct damon_system_ram_region arg = {};
+ struct damon_addr_range arg = {};
walk_system_ram_res(0, ULONG_MAX, &arg, walk_system_ram);
if (arg.end <= arg.start)