On Wed, Aug 02, 2017 at 03:51:58PM -0700, Matthias Kaehlcke wrote: > GENMASK_ULL performs a left-shift of (~0ULL), which technically > results in an integer overflow. clang raises a warning about > this if the overflow occurs in a preprocessor expression. To > avoid the overflow first perform a right-shift to clear the > bits that are shifted out. > > Signed-off-by: Matthias Kaehlcke <[email protected]> > --- > include/linux/bitops.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/include/linux/bitops.h b/include/linux/bitops.h > index a83c822c35c2..21dfe63001e3 100644 > --- a/include/linux/bitops.h > +++ b/include/linux/bitops.h > @@ -22,7 +22,7 @@ > (((~0UL) << (l)) & (~0UL >> (BITS_PER_LONG - 1 - (h))))
Once you touche GENMASK_ULL, why not to fix also GENMASK. > > #define GENMASK_ULL(h, l) \ > - (((~0ULL) << (l)) & (~0ULL >> (BITS_PER_LONG_LONG - 1 - (h)))) > + ((((~0ULL) >> (l)) << (l)) & (~0ULL >> (BITS_PER_LONG_LONG - 1 - (h)))) > > extern unsigned int __sw_hweight8(unsigned int w); > extern unsigned int __sw_hweight16(unsigned int w); > -- > 2.14.0.rc1.383.gd1ce394fe2-goog > > > _______________________________________________ > linux-arm-kernel mailing list > [email protected] > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

