From: Bijan Tabatabai This patch adds damos_destroy_dests(), which is used to free a struct damos_migrate_dests. Currently, the contents of a struct damos_migrate_dests in freed inline in damon_destroy_scheme(). Moving the code to a separate function is useful for when damos_migrate_dest structs need to also be freed elsewhere. Signed-off-by: Bijan Tabatabai --- include/linux/damon.h | 2 ++ mm/damon/core.c | 9 +++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/include/linux/damon.h b/include/linux/damon.h index 6b797120d2f2..a851c8bc2e52 100644 --- a/include/linux/damon.h +++ b/include/linux/damon.h @@ -914,6 +914,8 @@ struct damos_quota_goal *damos_new_quota_goal( void damos_add_quota_goal(struct damos_quota *q, struct damos_quota_goal *g); void damos_destroy_quota_goal(struct damos_quota_goal *goal); +void damos_destroy_dests(struct damos_migrate_dests *dests); + struct damos *damon_new_scheme(struct damos_access_pattern *pattern, enum damos_action action, unsigned long apply_interval_us, diff --git a/mm/damon/core.c b/mm/damon/core.c index 6a2fe1f2c952..07b4fc5a9790 100644 --- a/mm/damon/core.c +++ b/mm/damon/core.c @@ -359,6 +359,12 @@ void damos_destroy_quota_goal(struct damos_quota_goal *g) damos_free_quota_goal(g); } +void damos_destroy_dests(struct damos_migrate_dests *dests) +{ + kfree(dests->node_id_arr); + kfree(dests->weight_arr); +} + /* initialize fields of @quota that normally API users wouldn't set */ static struct damos_quota *damos_quota_init(struct damos_quota *quota) { @@ -451,8 +457,7 @@ void damon_destroy_scheme(struct damos *s) damos_for_each_filter_safe(f, next, s) damos_destroy_filter(f); - kfree(s->migrate_dests.node_id_arr); - kfree(s->migrate_dests.weight_arr); + damos_destroy_dests(&s->migrate_dests); damon_del_scheme(s); damon_free_scheme(s); } -- 2.43.5