Skip to content

Commit bd225b9

Browse files
honggyukimakpm00
authored andcommitted
mm/damon: fix divide by zero in damon_get_intervals_score()
The current implementation allows having zero size regions with no special reasons, but damon_get_intervals_score() gets crashed by divide by zero when the region size is zero. [ 29.403950] Oops: divide error: 0000 [#1] SMP NOPTI This patch fixes the bug, but does not disallow zero size regions to keep the backward compatibility since disallowing zero size regions might be a breaking change for some users. In addition, the same crash can happen when intervals_goal.access_bp is zero so this should be fixed in stable trees as well. Link: https://lkml.kernel.org/r/20250702000205.1921-5-honggyu.kim@sk.com Fixes: f04b0fe ("mm/damon/core: implement intervals auto-tuning") Signed-off-by: Honggyu Kim <honggyu.kim@sk.com> Reviewed-by: SeongJae Park <sj@kernel.org> Cc: <stable@vger.kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
1 parent ddba1b6 commit bd225b9

1 file changed

Lines changed: 1 addition & 0 deletions

File tree

mm/damon/core.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1449,6 +1449,7 @@ static unsigned long damon_get_intervals_score(struct damon_ctx *c)
14491449
}
14501450
}
14511451
target_access_events = max_access_events * goal_bp / 10000;
1452+
target_access_events = target_access_events ? : 1;
14521453
return access_events * 10000 / target_access_events;
14531454
}
14541455

0 commit comments

Comments
 (0)