Message ID | 110ffcd4e420c86c42b41ce2bc9f0fe6a4f32cd3.1638795127.git.xhao@linux.alibaba.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [V2] mm/damon: Modify damon_rand() macro to static inline function | expand |
On Mon, 6 Dec 2021 20:52:43 +0800 Xin Hao <xhao@linux.alibaba.com> wrote: > The damon_rand() func can not be implemented as a macro. > Example: > damon_rand(a++, b); > The value of 'a' will be incremented twice, This is obviously > unreasonable, So there fix it. > > Fixes: b9a6ac4e4ede ("mm/damon: adaptively adjust regions") > Reported-by: Andrew Morton <akpm@linux-foundation.org> > Signed-off-by: Xin Hao <xhao@linux.alibaba.com> Reviewed-by: SeongJae Park <sj@kernel.org> Thanks, SJ > --- > include/linux/damon.h | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/include/linux/damon.h b/include/linux/damon.h > index c6df025d8704..a58046cd45e6 100644 > --- a/include/linux/damon.h > +++ b/include/linux/damon.h > @@ -19,7 +19,10 @@ > #define DAMOS_MAX_SCORE (99) > > /* Get a random number in [l, r) */ > -#define damon_rand(l, r) (l + prandom_u32_max(r - l)) > +static inline unsigned long damon_rand(unsigned long l, unsigned long r) > +{ > + return l + prandom_u32_max(r - l); > +} > > /** > * struct damon_addr_range - Represents an address region of [@start, @end). > -- > 2.31.0 > >
diff --git a/include/linux/damon.h b/include/linux/damon.h index c6df025d8704..a58046cd45e6 100644 --- a/include/linux/damon.h +++ b/include/linux/damon.h @@ -19,7 +19,10 @@ #define DAMOS_MAX_SCORE (99) /* Get a random number in [l, r) */ -#define damon_rand(l, r) (l + prandom_u32_max(r - l)) +static inline unsigned long damon_rand(unsigned long l, unsigned long r) +{ + return l + prandom_u32_max(r - l); +} /** * struct damon_addr_range - Represents an address region of [@start, @end).
The damon_rand() func can not be implemented as a macro. Example: damon_rand(a++, b); The value of 'a' will be incremented twice, This is obviously unreasonable, So there fix it. Fixes: b9a6ac4e4ede ("mm/damon: adaptively adjust regions") Reported-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Xin Hao <xhao@linux.alibaba.com> --- include/linux/damon.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) -- 2.31.0