Lines Matching refs:seg
81 u32 seg;
88 seg = find_first_bit(buddy->bits[o], m);
89 if (seg < m)
97 clear_bit(seg, buddy->bits[o]);
102 seg <<= 1;
103 set_bit(seg ^ 1, buddy->bits[o]);
109 seg <<= order;
111 return seg;
114 static void mlx4_buddy_free(struct mlx4_buddy *buddy, u32 seg, int order)
116 seg >>= order;
120 while (test_bit(seg ^ 1, buddy->bits[order])) {
121 clear_bit(seg ^ 1, buddy->bits[order]);
123 seg >>= 1;
127 set_bit(seg, buddy->bits[order]);
185 u32 seg;
187 seg = mlx4_buddy_alloc(&mr_table->mtt_buddy, order);
188 if (seg == -1)
191 if (mlx4_table_get_range(dev, &mr_table->mtt_table, seg,
192 seg + (1 << order) - 1)) {
193 mlx4_buddy_free(&mr_table->mtt_buddy, seg, order);
197 return seg;