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


Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to