提交 88f86dcf 编写于 作者: S SeongJae Park 提交者: Linus Torvalds

mm/damon: convert macro functions to static inline functions

Patch series "mm/damon: Misc cleanups".

This patchset contains miscellaneous cleanups for DAMON's macro
functions and documentation.

This patch (of 6):

This commit converts macro functions in DAMON to static inline functions,
for better type checking, code documentation, etc[1].

[1] https://lore.kernel.org/linux-mm/20211202151213.6ec830863342220da4141bc5@linux-foundation.org/

Link: https://lkml.kernel.org/r/20211209131806.19317-1-sj@kernel.org
Link: https://lkml.kernel.org/r/20211209131806.19317-2-sj@kernel.orgSigned-off-by: NSeongJae Park <sj@kernel.org>
Cc: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 234d6873
...@@ -399,14 +399,20 @@ struct damon_ctx { ...@@ -399,14 +399,20 @@ struct damon_ctx {
struct list_head schemes; struct list_head schemes;
}; };
#define damon_next_region(r) \ static inline struct damon_region *damon_next_region(struct damon_region *r)
(container_of(r->list.next, struct damon_region, list)) {
return container_of(r->list.next, struct damon_region, list);
}
#define damon_prev_region(r) \ static inline struct damon_region *damon_prev_region(struct damon_region *r)
(container_of(r->list.prev, struct damon_region, list)) {
return container_of(r->list.prev, struct damon_region, list);
}
#define damon_last_region(t) \ static inline struct damon_region *damon_last_region(struct damon_target *t)
(list_last_entry(&t->regions_list, struct damon_region, list)) {
return list_last_entry(&t->regions_list, struct damon_region, list);
}
#define damon_for_each_region(r, t) \ #define damon_for_each_region(r, t) \
list_for_each_entry(r, &t->regions_list, list) list_for_each_entry(r, &t->regions_list, list)
......
...@@ -729,7 +729,10 @@ static void kdamond_apply_schemes(struct damon_ctx *c) ...@@ -729,7 +729,10 @@ static void kdamond_apply_schemes(struct damon_ctx *c)
} }
} }
#define sz_damon_region(r) (r->ar.end - r->ar.start) static inline unsigned long sz_damon_region(struct damon_region *r)
{
return r->ar.end - r->ar.start;
}
/* /*
* Merge two adjacent regions into one region * Merge two adjacent regions into one region
......
...@@ -26,8 +26,10 @@ ...@@ -26,8 +26,10 @@
* 't->id' should be the pointer to the relevant 'struct pid' having reference * 't->id' should be the pointer to the relevant 'struct pid' having reference
* count. Caller must put the returned task, unless it is NULL. * count. Caller must put the returned task, unless it is NULL.
*/ */
#define damon_get_task_struct(t) \ static inline struct task_struct *damon_get_task_struct(struct damon_target *t)
(get_pid_task((struct pid *)t->id, PIDTYPE_PID)) {
return get_pid_task((struct pid *)t->id, PIDTYPE_PID);
}
/* /*
* Get the mm_struct of the given target * Get the mm_struct of the given target
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册