diff options
author | Roland Dreier <roland@topspin.com> | 2005-04-16 15:26:32 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 15:26:32 -0700 |
commit | d10ddbf6d7f6699c386d1f41bf542189de32b6be (patch) | |
tree | b2e3ab95925407472fa9c62bb6016d85f822cb68 /drivers/infiniband/hw/mthca/mthca_mr.c | |
parent | 6bd6228eed52ef188ebe46865ccff72da936c968 (diff) |
[PATCH] IB/mthca: encapsulate mem-free check into mthca_is_memfree()
Clean up mem-free mode support by introducing mthca_is_memfree() function,
which encapsulates the logic of deciding if a device is mem-free.
Signed-off-by: Roland Dreier <roland@topspin.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/infiniband/hw/mthca/mthca_mr.c')
-rw-r--r-- | drivers/infiniband/hw/mthca/mthca_mr.c | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/drivers/infiniband/hw/mthca/mthca_mr.c b/drivers/infiniband/hw/mthca/mthca_mr.c index a85b503b852..8960fc2306b 100644 --- a/drivers/infiniband/hw/mthca/mthca_mr.c +++ b/drivers/infiniband/hw/mthca/mthca_mr.c @@ -181,7 +181,7 @@ static u32 mthca_alloc_mtt(struct mthca_dev *dev, int order, if (seg == -1) return -1; - if (dev->hca_type == ARBEL_NATIVE) + 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); @@ -196,7 +196,7 @@ static void mthca_free_mtt(struct mthca_dev *dev, u32 seg, int order, { mthca_buddy_free(buddy, seg, order); - if (dev->hca_type == ARBEL_NATIVE) + if (mthca_is_memfree(dev)) mthca_table_put_range(dev, dev->mr_table.mtt_table, seg, seg + (1 << order) - 1); } @@ -223,7 +223,7 @@ static inline u32 arbel_key_to_hw_index(u32 key) static inline u32 hw_index_to_key(struct mthca_dev *dev, u32 ind) { - if (dev->hca_type == ARBEL_NATIVE) + if (mthca_is_memfree(dev)) return arbel_hw_index_to_key(ind); else return tavor_hw_index_to_key(ind); @@ -231,7 +231,7 @@ static inline u32 hw_index_to_key(struct mthca_dev *dev, u32 ind) static inline u32 key_to_hw_index(struct mthca_dev *dev, u32 key) { - if (dev->hca_type == ARBEL_NATIVE) + if (mthca_is_memfree(dev)) return arbel_key_to_hw_index(key); else return tavor_key_to_hw_index(key); @@ -254,7 +254,7 @@ int mthca_mr_alloc_notrans(struct mthca_dev *dev, u32 pd, return -ENOMEM; mr->ibmr.rkey = mr->ibmr.lkey = hw_index_to_key(dev, key); - if (dev->hca_type == ARBEL_NATIVE) { + if (mthca_is_memfree(dev)) { err = mthca_table_get(dev, dev->mr_table.mpt_table, key); if (err) goto err_out_mpt_free; @@ -299,7 +299,7 @@ int mthca_mr_alloc_notrans(struct mthca_dev *dev, u32 pd, return err; err_out_table: - if (dev->hca_type == ARBEL_NATIVE) + if (mthca_is_memfree(dev)) mthca_table_put(dev, dev->mr_table.mpt_table, key); err_out_mpt_free: @@ -329,7 +329,7 @@ int mthca_mr_alloc_phys(struct mthca_dev *dev, u32 pd, return -ENOMEM; mr->ibmr.rkey = mr->ibmr.lkey = hw_index_to_key(dev, key); - if (dev->hca_type == ARBEL_NATIVE) { + if (mthca_is_memfree(dev)) { err = mthca_table_get(dev, dev->mr_table.mpt_table, key); if (err) goto err_out_mpt_free; @@ -437,7 +437,7 @@ err_out_free_mtt: mthca_free_mtt(dev, mr->first_seg, mr->order, &dev->mr_table.mtt_buddy); err_out_table: - if (dev->hca_type == ARBEL_NATIVE) + if (mthca_is_memfree(dev)) mthca_table_put(dev, dev->mr_table.mpt_table, key); err_out_mpt_free: @@ -452,7 +452,7 @@ static void mthca_free_region(struct mthca_dev *dev, u32 lkey, int order, if (order >= 0) mthca_free_mtt(dev, first_seg, order, buddy); - if (dev->hca_type == ARBEL_NATIVE) + if (mthca_is_memfree(dev)) mthca_table_put(dev, dev->mr_table.mpt_table, arbel_key_to_hw_index(lkey)); @@ -498,7 +498,7 @@ int mthca_fmr_alloc(struct mthca_dev *dev, u32 pd, return -EINVAL; /* For Arbel, all MTTs must fit in the same page. */ - if (dev->hca_type == ARBEL_NATIVE && + if (mthca_is_memfree(dev) && mr->attr.max_pages * sizeof *mr->mem.arbel.mtts > PAGE_SIZE) return -EINVAL; @@ -511,7 +511,7 @@ int mthca_fmr_alloc(struct mthca_dev *dev, u32 pd, idx = key & (dev->limits.num_mpts - 1); mr->ibmr.rkey = mr->ibmr.lkey = hw_index_to_key(dev, key); - if (dev->hca_type == ARBEL_NATIVE) { + if (mthca_is_memfree(dev)) { err = mthca_table_get(dev, dev->mr_table.mpt_table, key); if (err) goto err_out_mpt_free; @@ -534,7 +534,7 @@ int mthca_fmr_alloc(struct mthca_dev *dev, u32 pd, mtt_seg = mr->first_seg * MTHCA_MTT_SEG_SIZE; - if (dev->hca_type == ARBEL_NATIVE) { + if (mthca_is_memfree(dev)) { mr->mem.arbel.mtts = mthca_table_find(dev->mr_table.mtt_table, mr->first_seg); BUG_ON(!mr->mem.arbel.mtts); @@ -596,7 +596,7 @@ err_out_free_mtt: dev->mr_table.fmr_mtt_buddy); err_out_table: - if (dev->hca_type == ARBEL_NATIVE) + if (mthca_is_memfree(dev)) mthca_table_put(dev, dev->mr_table.mpt_table, key); err_out_mpt_free: @@ -765,7 +765,7 @@ int __devinit mthca_init_mr_table(struct mthca_dev *dev) if (err) return err; - if (dev->hca_type != ARBEL_NATIVE && + if (!mthca_is_memfree(dev) && (dev->mthca_flags & MTHCA_FLAG_DDR_HIDDEN)) dev->limits.fmr_reserved_mtts = 0; else |