On Thu, Jul 26, 2018 at 11:07 AM, Wei Wang <wei.w.w...@intel.com> wrote: > The existing BITMAP_LAST_WORD_MASK macro returns 0xffffffff if nbits is > 0. This patch changes the macro to return 0 when there is no bit needs to > be masked. >
Can you provide a practical example of what's going wrong before this patch applied? > Signed-off-by: Wei Wang <wei.w.w...@intel.com> > Cc: Andrew Morton <a...@linux-foundation.org> > Cc: Rasmus Villemoes <li...@rasmusvillemoes.dk> > Cc: Yury Norov <yno...@caviumnetworks.com> > --- > include/linux/bitmap.h | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/include/linux/bitmap.h b/include/linux/bitmap.h > index 1ee46f4..12af3d7 100644 > --- a/include/linux/bitmap.h > +++ b/include/linux/bitmap.h > @@ -194,7 +194,10 @@ extern int bitmap_print_to_pagebuf(bool list, char *buf, > const unsigned long *maskp, int nmaskbits); > > #define BITMAP_FIRST_WORD_MASK(start) (~0UL << ((start) & (BITS_PER_LONG - > 1))) > -#define BITMAP_LAST_WORD_MASK(nbits) (~0UL >> (-(nbits) & (BITS_PER_LONG - > 1))) > +#define BITMAP_LAST_WORD_MASK(nbits) \ > +( \ > + nbits ? (~0UL >> (-(nbits) & (BITS_PER_LONG - 1))) : 0 \ > +) > > #define small_const_nbits(nbits) \ > (__builtin_constant_p(nbits) && (nbits) <= BITS_PER_LONG) > -- > 2.7.4 > -- With Best Regards, Andy Shevchenko