apply_probes() ops implementation in DAMON_PADDR is ignoring return_max_wsum. Respect it. Signed-off-by: SJ Park --- mm/damon/paddr.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/mm/damon/paddr.c b/mm/damon/paddr.c index 3eba3564a31fc..b85f88a7a38f4 100644 --- a/mm/damon/paddr.c +++ b/mm/damon/paddr.c @@ -172,6 +172,7 @@ static unsigned int damon_pa_apply_probes(struct damon_ctx *ctx, struct damon_target *t; struct damon_region *r; struct damon_probe *p; + unsigned int max_wsum = 0; damon_for_each_target(t, ctx) { damon_for_each_region(r, t) { @@ -182,7 +183,6 @@ static unsigned int damon_pa_apply_probes(struct damon_ctx *ctx, if (set_samples) r->sampling_addr = damon_rand(ctx, r->ar.start, r->ar.end); - pa = damon_pa_phys_addr(r->sampling_addr, ctx->addr_unit); folio = damon_get_folio(PHYS_PFN(pa)); @@ -193,9 +193,12 @@ static unsigned int damon_pa_apply_probes(struct damon_ctx *ctx, } if (folio) folio_put(folio); + if (return_max_wsum) + max_wsum = max(damon_probe_hits_wsum(r, false, + ctx), max_wsum); } } - return 0; + return max_wsum; } /* -- 2.47.3