lib: bitmap: remove redundant code from __bitmap_shift_left
[firefly-linux-kernel-4.4.55.git] / lib / bitmap.c
index 36e380da00c5943011c2307227918c48ec71c2b4..a13c7f4e325a15e09307c1fd98fc230ee3dab990 100644 (file)
@@ -159,7 +159,7 @@ void __bitmap_shift_left(unsigned long *dst, const unsigned long *src,
                        unsigned int shift, unsigned int nbits)
 {
        int k;
-       unsigned int lim = BITS_TO_LONGS(nbits), left = nbits % BITS_PER_LONG;
+       unsigned int lim = BITS_TO_LONGS(nbits);
        unsigned int off = shift/BITS_PER_LONG, rem = shift % BITS_PER_LONG;
        for (k = lim - off - 1; k >= 0; --k) {
                unsigned long upper, lower;
@@ -172,13 +172,8 @@ void __bitmap_shift_left(unsigned long *dst, const unsigned long *src,
                        lower = src[k - 1] >> (BITS_PER_LONG - rem);
                else
                        lower = 0;
-               upper = src[k];
-               if (left && k == lim - 1)
-                       upper &= (1UL << left) - 1;
-               upper <<= rem;
+               upper = src[k] << rem;
                dst[k + off] = lower | upper;
-               if (left && k + off == lim - 1)
-                       dst[k + off] &= (1UL << left) - 1;
        }
        if (off)
                memset(dst, 0, off*sizeof(unsigned long));