Lines Matching refs:seg
50 u32 seg; in mlx4_buddy_alloc() local
57 seg = find_first_bit(buddy->bits[o], m); in mlx4_buddy_alloc()
58 if (seg < m) in mlx4_buddy_alloc()
66 clear_bit(seg, buddy->bits[o]); in mlx4_buddy_alloc()
71 seg <<= 1; in mlx4_buddy_alloc()
72 set_bit(seg ^ 1, buddy->bits[o]); in mlx4_buddy_alloc()
78 seg <<= order; in mlx4_buddy_alloc()
80 return seg; in mlx4_buddy_alloc()
83 static void mlx4_buddy_free(struct mlx4_buddy *buddy, u32 seg, int order) in mlx4_buddy_free() argument
85 seg >>= order; in mlx4_buddy_free()
89 while (test_bit(seg ^ 1, buddy->bits[order])) { in mlx4_buddy_free()
90 clear_bit(seg ^ 1, buddy->bits[order]); in mlx4_buddy_free()
92 seg >>= 1; in mlx4_buddy_free()
96 set_bit(seg, buddy->bits[order]); in mlx4_buddy_free()
156 u32 seg; in __mlx4_alloc_mtt_range() local
162 seg = mlx4_buddy_alloc(&mr_table->mtt_buddy, seg_order); in __mlx4_alloc_mtt_range()
163 if (seg == -1) in __mlx4_alloc_mtt_range()
166 offset = seg * (1 << log_mtts_per_seg); in __mlx4_alloc_mtt_range()
170 mlx4_buddy_free(&mr_table->mtt_buddy, seg, seg_order); in __mlx4_alloc_mtt_range()