IB/mlx5: Expose correct max_fast_reg_page_list_len
authorSagi Grimberg <sagig@mellanox.com>
Thu, 3 Mar 2016 11:37:51 +0000 (13:37 +0200)
committerDoug Ledford <dledford@redhat.com>
Fri, 4 Mar 2016 16:59:34 +0000 (11:59 -0500)
While documentation indicates that the number of translation
entries per memory key is unlimited, in practice, we can
only fit a finite amount of translation entries in a single
registration wqe (which is log_max_klm_list_size).

Signed-off-by: Sagi Grimberg <sagig@mellanox.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/mlx5/main.c

index 63c3d21dd471dde13d6357c9fb4582d887a62301..55fa5889d3b2444a1c1715475278e8a480a42dea 100644 (file)
@@ -539,7 +539,8 @@ static int mlx5_ib_query_device(struct ib_device *ibdev,
        props->local_ca_ack_delay  = MLX5_CAP_GEN(mdev, local_ca_ack_delay);
        props->max_res_rd_atom     = props->max_qp_rd_atom * props->max_qp;
        props->max_srq_sge         = max_rq_sg - 1;
-       props->max_fast_reg_page_list_len = (unsigned int)-1;
+       props->max_fast_reg_page_list_len =
+               1 << MLX5_CAP_GEN(mdev, log_max_klm_list_size);
        get_atomic_caps(dev, props);
        props->masked_atomic_cap   = IB_ATOMIC_NONE;
        props->max_mcast_grp       = 1 << MLX5_CAP_GEN(mdev, log_max_mcg);