bitmap: use for_each_set_bit()
authorAkinobu Mita <akinobu.mita@gmail.com>
Fri, 5 Mar 2010 21:43:18 +0000 (13:43 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 6 Mar 2010 19:26:35 +0000 (11:26 -0800)
Replace open-coded loop with for_each_set_bit().

Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
lib/bitmap.c

index 61998c5..ffb78c9 100644 (file)
@@ -733,10 +733,9 @@ void bitmap_remap(unsigned long *dst, const unsigned long *src,
        bitmap_zero(dst, bits);
 
        w = bitmap_weight(new, bits);
-       for (oldbit = find_first_bit(src, bits);
-            oldbit < bits;
-            oldbit = find_next_bit(src, bits, oldbit + 1)) {
+       for_each_set_bit(oldbit, src, bits) {
                int n = bitmap_pos_to_ord(old, oldbit, bits);
+
                if (n < 0 || w == 0)
                        set_bit(oldbit, dst);   /* identity map */
                else
@@ -903,9 +902,7 @@ void bitmap_onto(unsigned long *dst, const unsigned long *orig,
         */
 
        m = 0;
-       for (n = find_first_bit(relmap, bits);
-            n < bits;
-            n = find_next_bit(relmap, bits, n + 1)) {
+       for_each_set_bit(n, relmap, bits) {
                /* m == bitmap_pos_to_ord(relmap, n, bits) */
                if (test_bit(m, orig))
                        set_bit(n, dst);
@@ -934,9 +931,7 @@ void bitmap_fold(unsigned long *dst, const unsigned long *orig,
                return;
        bitmap_zero(dst, bits);
 
-       for (oldbit = find_first_bit(orig, bits);
-            oldbit < bits;
-            oldbit = find_next_bit(orig, bits, oldbit + 1))
+       for_each_set_bit(oldbit, orig, bits)
                set_bit(oldbit % sz, dst);
 }
 EXPORT_SYMBOL(bitmap_fold);