Merge branch 'core-hweight-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[linux-2.6-block.git] / lib / bitmap.c
index 61998c5924fef561bcf30a7148d54b00f458438b..ffb78c916ccdf85ffb0d8ec7d0f3f1e4f41ab3ef 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);