diff options
-rw-r--r-- | drivers/infiniband/hw/mthca/mthca_cmd.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/mthca/mthca_cmd.c b/drivers/infiniband/hw/mthca/mthca_cmd.c index 968d1519761c..71314460b11e 100644 --- a/drivers/infiniband/hw/mthca/mthca_cmd.c +++ b/drivers/infiniband/hw/mthca/mthca_cmd.c | |||
@@ -1051,7 +1051,11 @@ int mthca_QUERY_DEV_LIM(struct mthca_dev *dev, | |||
1051 | MTHCA_GET(field, outbox, QUERY_DEV_LIM_MAX_EQ_OFFSET); | 1051 | MTHCA_GET(field, outbox, QUERY_DEV_LIM_MAX_EQ_OFFSET); |
1052 | dev_lim->max_eqs = 1 << (field & 0x7); | 1052 | dev_lim->max_eqs = 1 << (field & 0x7); |
1053 | MTHCA_GET(field, outbox, QUERY_DEV_LIM_RSVD_MTT_OFFSET); | 1053 | MTHCA_GET(field, outbox, QUERY_DEV_LIM_RSVD_MTT_OFFSET); |
1054 | dev_lim->reserved_mtts = 1 << (field >> 4); | 1054 | if (mthca_is_memfree(dev)) |
1055 | dev_lim->reserved_mtts = ALIGN((1 << (field >> 4)) * sizeof(u64), | ||
1056 | MTHCA_MTT_SEG_SIZE) / MTHCA_MTT_SEG_SIZE; | ||
1057 | else | ||
1058 | dev_lim->reserved_mtts = 1 << (field >> 4); | ||
1055 | MTHCA_GET(field, outbox, QUERY_DEV_LIM_MAX_MRW_SZ_OFFSET); | 1059 | MTHCA_GET(field, outbox, QUERY_DEV_LIM_MAX_MRW_SZ_OFFSET); |
1056 | dev_lim->max_mrw_sz = 1 << field; | 1060 | dev_lim->max_mrw_sz = 1 << field; |
1057 | MTHCA_GET(field, outbox, QUERY_DEV_LIM_RSVD_MRW_OFFSET); | 1061 | MTHCA_GET(field, outbox, QUERY_DEV_LIM_RSVD_MRW_OFFSET); |