Commit a2cb4a98 authored by Roland Dreier's avatar Roland Dreier

IB/mlx4: Fix last allocated object tracking in bitmap allocator

Set last allocated object to the object after the one just allocated
before ORing in the extra top bits.  Also handle the case where this
wraps around.
Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
parent d998ccce
...@@ -51,8 +51,8 @@ u32 mlx4_bitmap_alloc(struct mlx4_bitmap *bitmap) ...@@ -51,8 +51,8 @@ u32 mlx4_bitmap_alloc(struct mlx4_bitmap *bitmap)
if (obj < bitmap->max) { if (obj < bitmap->max) {
set_bit(obj, bitmap->table); set_bit(obj, bitmap->table);
bitmap->last = (obj + 1) & (bitmap->max - 1);
obj |= bitmap->top; obj |= bitmap->top;
bitmap->last = obj + 1;
} else } else
obj = -1; obj = -1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment