u32 mlx4_bitmap_alloc_range(struct mlx4_bitmap *bitmap, int cnt, int align)
 {
-       u32 obj, i;
+       u32 obj;
 
        if (likely(cnt == 1 && align == 1))
                return mlx4_bitmap_alloc(bitmap);
        }
 
        if (obj < bitmap->max) {
-               for (i = 0; i < cnt; i++)
-                       set_bit(obj + i, bitmap->table);
+               bitmap_set(bitmap->table, obj, cnt);
                if (obj == bitmap->last) {
                        bitmap->last = (obj + cnt);
                        if (bitmap->last >= bitmap->max)
 
 void mlx4_bitmap_free_range(struct mlx4_bitmap *bitmap, u32 obj, int cnt)
 {
-       u32 i;
-
        obj &= bitmap->max + bitmap->reserved_top - 1;
 
        spin_lock(&bitmap->lock);
-       for (i = 0; i < cnt; i++)
-               clear_bit(obj + i, bitmap->table);
+       bitmap_clear(bitmap->table, obj, cnt);
        bitmap->last = min(bitmap->last, obj);
        bitmap->top = (bitmap->top + bitmap->max + bitmap->reserved_top)
                        & bitmap->mask;
 int mlx4_bitmap_init(struct mlx4_bitmap *bitmap, u32 num, u32 mask,
                     u32 reserved_bot, u32 reserved_top)
 {
-       int i;
-
        /* num must be a power of 2 */
        if (num != roundup_pow_of_two(num))
                return -EINVAL;
        if (!bitmap->table)
                return -ENOMEM;
 
-       for (i = 0; i < reserved_bot; ++i)
-               set_bit(i, bitmap->table);
+       bitmap_set(bitmap->table, 0, reserved_bot);
 
        return 0;
 }