On 24.05.19 г. 18:26 ч., Steven Rostedt wrote: > 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 Or perhaps just using is_power_of_2 from include/linux/log2.h ? > >> #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 >