Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c7d204e8 authored by Michael S. Tsirkin's avatar Michael S. Tsirkin Committed by Roland Dreier
Browse files

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: default avatarMichael S. Tsirkin <mst@mellanox.co.il>
Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
parent b038ced7
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -1051,6 +1051,10 @@ 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);
	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;