On Mon, Oct 07, 2019 at 04:17:32PM -0400, Dennis Zhou wrote: > Bitmaps are fairly popular for their space efficiency, but we don't have > generic iterators available. Make percpu's bitmap region iterators > available to everyone. > > Signed-off-by: Dennis Zhou <den...@kernel.org> > --- > include/linux/bitmap.h | 35 ++++++++++++++++++++++++ > mm/percpu.c | 61 +++++++++++------------------------------- > 2 files changed, 51 insertions(+), 45 deletions(-) > > diff --git a/include/linux/bitmap.h b/include/linux/bitmap.h > index 90528f12bdfa..9b0664f36808 100644 > --- a/include/linux/bitmap.h > +++ b/include/linux/bitmap.h > @@ -437,6 +437,41 @@ static inline int bitmap_parse(const char *buf, unsigned > int buflen, > return __bitmap_parse(buf, buflen, 0, maskp, nmaskbits); > } > > +static inline void bitmap_next_clear_region(unsigned long *bitmap, > + unsigned int *rs, unsigned int *re, > + unsigned int end) > +{ > + *rs = find_next_zero_bit(bitmap, end, *rs); > + *re = find_next_bit(bitmap, end, *rs + 1); > +} > + > +static inline void bitmap_next_set_region(unsigned long *bitmap, > + unsigned int *rs, unsigned int *re, > + unsigned int end) > +{ > + *rs = find_next_bit(bitmap, end, *rs); > + *re = find_next_zero_bit(bitmap, end, *rs + 1); > +} > + > +/* > + * Bitmap region iterators. Iterates over the bitmap between [@start, @end).
Gonna be that guy here, should be '[@start, @end]' Reviewed-by: Josef Bacik <jo...@toxicpanda.com> Thanks, Josef