Re: [RFC][PATCH] kernel.h: Add generic roundup_64() macro

From: Steven Rostedt
Date: Fri May 24 2019 - 11:30:01 EST


On Fri, 24 May 2019 16:11:14 +0100
Roger Willcocks <roger@xxxxxxxxxxxxxxxx> wrote:

> On 23/05/2019 16:27, Steven Rostedt wrote:
> >
> > I haven't yet tested this, but what about something like the following:
> >
> > ...perhaps forget about the constant check, and just force
> > the power of two check:
> >
> > \
> > if (!(__y & (__y >> 1))) { \
> > __x = round_up(x, y); \
> > } else { \
>
> You probably want
>
> ÂÂÂÂÂÂÂÂÂÂ if (!(__y & (__y - 1))
>
> --

Yes I do. I corrected it in my next email.

http://lkml.kernel.org/r/20190523133648.591f9e78@xxxxxxxxxxxxxxxxxx

> #define roundup(x, y) ( \
> { \
> typeof(y) __y = y; \
> typeof(x) __x; \
> \
> if (__y & (__y - 1)) \
> __x = round_up(x, __y); \
> else \
> __x = (((x) + (__y - 1)) / __y) * __y; \
> __x; \
> })


-- Steve