From: Eli Cohen Date: Thu, 9 Feb 2017 17:31:47 +0000 (+0200) Subject: IB/mlx5: Fix blue flame buffer size calculation X-Git-Tag: v4.14-rc1~1433^2~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d8030b0de03ec6bdf3665e1d915fa0f02e5ec89d;p=platform%2Fkernel%2Flinux-rpi.git IB/mlx5: Fix blue flame buffer size calculation A blue flame register is comprised of two buffers of equal size. Fixes: 5fe9dec0d0454 ("IB/mlx5: Use blue flame register allocator in mlx5_ib") Signed-off-by: Eli Cohen Reviewed-by: Noa Osherovich Reviewed-by: Matan Barak Signed-off-by: Leon Romanovsky Signed-off-by: Doug Ledford --- diff --git a/drivers/infiniband/hw/mlx5/qp.c b/drivers/infiniband/hw/mlx5/qp.c index fbfff12..69a1604a 100644 --- a/drivers/infiniband/hw/mlx5/qp.c +++ b/drivers/infiniband/hw/mlx5/qp.c @@ -905,7 +905,10 @@ static int create_kernel_qp(struct mlx5_ib_dev *dev, else qp->bf.bfreg = &dev->bfreg; - qp->bf.buf_size = 1 << MLX5_CAP_GEN(dev->mdev, log_bf_reg_size); + /* We need to divide by two since each register is comprised of + * two buffers of identical size, namely odd and even + */ + qp->bf.buf_size = (1 << MLX5_CAP_GEN(dev->mdev, log_bf_reg_size)) / 2; uar_index = qp->bf.bfreg->index; err = calc_sq_size(dev, init_attr, qp);