IB/mthca: Fix reserved MTTs calculation on mem-free HCAs
The reserved_mtts field has different meaning in Tavor and Arbel, so we are wasting mtt entries on memfree. Fix the Arbel case to match Tavor semantics. Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il> Signed-off-by: Roland Dreier <rolandd@cisco.com>
This commit is contained in:
parent
b038ced7b3
commit
c7d204e8fd
|
@ -1051,7 +1051,11 @@ int mthca_QUERY_DEV_LIM(struct mthca_dev *dev,
|
|||
MTHCA_GET(field, outbox, QUERY_DEV_LIM_MAX_EQ_OFFSET);
|
||||
dev_lim->max_eqs = 1 << (field & 0x7);
|
||||
MTHCA_GET(field, outbox, QUERY_DEV_LIM_RSVD_MTT_OFFSET);
|
||||
dev_lim->reserved_mtts = 1 << (field >> 4);
|
||||
if (mthca_is_memfree(dev))
|
||||
dev_lim->reserved_mtts = ALIGN((1 << (field >> 4)) * sizeof(u64),
|
||||
MTHCA_MTT_SEG_SIZE) / MTHCA_MTT_SEG_SIZE;
|
||||
else
|
||||
dev_lim->reserved_mtts = 1 << (field >> 4);
|
||||
MTHCA_GET(field, outbox, QUERY_DEV_LIM_MAX_MRW_SZ_OFFSET);
|
||||
dev_lim->max_mrw_sz = 1 << field;
|
||||
MTHCA_GET(field, outbox, QUERY_DEV_LIM_RSVD_MRW_OFFSET);
|
||||
|
|
Loading…
Reference in New Issue