]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - include/linux/bitmap.h
net: fix sparse warnings in SNMP_UPD_PO_STATS(_BH)
[karo-tx-linux.git] / include / linux / bitmap.h
index 2100378333569ad8e33de0f9f16c82f605d1010f..e1c8d080c4271d655f75a771ec71ab6ee81c66e3 100644 (file)
@@ -191,7 +191,7 @@ static inline int bitmap_and(unsigned long *dst, const unsigned long *src1,
                        const unsigned long *src2, unsigned int nbits)
 {
        if (small_const_nbits(nbits))
-               return (*dst = *src1 & *src2) != 0;
+               return (*dst = *src1 & *src2 & BITMAP_LAST_WORD_MASK(nbits)) != 0;
        return __bitmap_and(dst, src1, src2, nbits);
 }
 
@@ -217,7 +217,7 @@ static inline int bitmap_andnot(unsigned long *dst, const unsigned long *src1,
                        const unsigned long *src2, unsigned int nbits)
 {
        if (small_const_nbits(nbits))
-               return (*dst = *src1 & ~(*src2)) != 0;
+               return (*dst = *src1 & ~(*src2) & BITMAP_LAST_WORD_MASK(nbits)) != 0;
        return __bitmap_andnot(dst, src1, src2, nbits);
 }
 
@@ -284,7 +284,7 @@ static inline void bitmap_shift_right(unsigned long *dst,
                        const unsigned long *src, int n, int nbits)
 {
        if (small_const_nbits(nbits))
-               *dst = *src >> n;
+               *dst = (*src & BITMAP_LAST_WORD_MASK(nbits)) >> n;
        else
                __bitmap_shift_right(dst, src, n, nbits);
 }