Lines Matching refs:order
43 int order; member
84 static u32 mthca_buddy_alloc(struct mthca_buddy *buddy, int order) in mthca_buddy_alloc() argument
92 for (o = order; o <= buddy->max_order; ++o) in mthca_buddy_alloc()
107 while (o > order) { in mthca_buddy_alloc()
116 seg <<= order; in mthca_buddy_alloc()
121 static void mthca_buddy_free(struct mthca_buddy *buddy, u32 seg, int order) in mthca_buddy_free() argument
123 seg >>= order; in mthca_buddy_free()
127 while (test_bit(seg ^ 1, buddy->bits[order])) { in mthca_buddy_free()
128 clear_bit(seg ^ 1, buddy->bits[order]); in mthca_buddy_free()
129 --buddy->num_free[order]; in mthca_buddy_free()
131 ++order; in mthca_buddy_free()
134 set_bit(seg, buddy->bits[order]); in mthca_buddy_free()
135 ++buddy->num_free[order]; in mthca_buddy_free()
190 static u32 mthca_alloc_mtt_range(struct mthca_dev *dev, int order, in mthca_alloc_mtt_range() argument
193 u32 seg = mthca_buddy_alloc(buddy, order); in mthca_alloc_mtt_range()
200 seg + (1 << order) - 1)) { in mthca_alloc_mtt_range()
201 mthca_buddy_free(buddy, seg, order); in mthca_alloc_mtt_range()
222 mtt->order = 0; in __mthca_alloc_mtt()
224 ++mtt->order; in __mthca_alloc_mtt()
226 mtt->first_seg = mthca_alloc_mtt_range(dev, mtt->order, buddy); in __mthca_alloc_mtt()
245 mthca_buddy_free(mtt->buddy, mtt->first_seg, mtt->order); in mthca_free_mtt()
249 mtt->first_seg + (1 << mtt->order) - 1); in mthca_free_mtt()