u32 seg = mthca_buddy_alloc(buddy, order);  if (seg == -1) return -1;  if (mthca_is_memfree(dev)) if (mthca_table_get_range(dev, dev->mr_table.mtt_table, seg, seg + (1 << order) - 1)) { mthca_buddy_free(buddy, seg, order); seg = -1; }  return seg; 
return __mthca_alloc_mtt(dev, size, &dev->mr_table.mtt_buddy); 
static u32 mthca_alloc_mtt(struct mthca_dev *dev, int order,			   struct mthca_buddy *buddy){	u32 seg = mthca_buddy_alloc(buddy, order);	if (seg == -1)		return -1;	if (mthca_is_memfree(dev))		if (mthca_table_get_range(dev, dev->mr_table.mtt_table, seg,					  seg + (1 << order) - 1)) {			mthca_buddy_free(buddy, seg, order);			seg = -1;		}	return seg;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/d56d6f9502a15ef64395cb3a6fc7bfdc365b1e3d/mthca_mr.c/clean/drivers/infiniband/hw/mthca/mthca_mr.c