On 07/21/2015 07:40 AM, Sagi Grimberg wrote: > Should be all the page sizes that are supported by the > device. > > Reported-by: Jason Gunthorpe <[email protected]> > Signed-off-by: Sagi Grimberg <[email protected]> > --- > drivers/infiniband/hw/mlx5/main.c | 3 ++- > 1 files changed, 2 insertions(+), 1 deletions(-) > > diff --git a/drivers/infiniband/hw/mlx5/main.c > b/drivers/infiniband/hw/mlx5/main.c > index 725f857..a90ef7a 100644 > --- a/drivers/infiniband/hw/mlx5/main.c > +++ b/drivers/infiniband/hw/mlx5/main.c > @@ -212,6 +212,7 @@ static int mlx5_ib_query_device(struct ib_device *ibdev, > int err = -ENOMEM; > int max_rq_sg; > int max_sq_sg; > + u64 min_page_size = 1ull << MLX5_CAP_GEN(mdev, log_pg_sz); > > if (uhw->inlen || uhw->outlen) > return -EINVAL; > @@ -264,7 +265,7 @@ static int mlx5_ib_query_device(struct ib_device *ibdev, > props->hw_ver = mdev->pdev->revision; > > props->max_mr_size = ~0ull; > - props->page_size_cap = 1ull << MLX5_CAP_GEN(mdev, log_pg_sz); > + props->page_size_cap = ~(min_page_size - 1); > props->max_qp = 1 << MLX5_CAP_GEN(mdev, log_max_qp); > props->max_qp_wr = 1 << MLX5_CAP_GEN(mdev, log_max_qp_sz); > max_rq_sg = MLX5_CAP_GEN(mdev, max_wqe_sz_rq) / >
I assume this prevents the driver from working at all on certain arches (like ppc with 64k page size)? It looks obviously correct enough that I've picked it up for 4.2-rc. Thanks. -- Doug Ledford <[email protected]> GPG KeyID: 0E572FDD
signature.asc
Description: OpenPGP digital signature
