Message ID | 20170209173147.20528-1-leon@kernel.org (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
On Thu, 2017-02-09 at 19:31 +0200, Leon Romanovsky wrote: > From: Eli Cohen <eli@mellanox.com> > > 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 <eli@mellanox.com> > Reviewed-by: Noa Osherovich <noaos@mellanox.com> > Reviewed-by: Matan Barak <matanb@mellanox.com> > Signed-off-by: Leon Romanovsky <leon@kernel.org> > --- > Chanelog v0->v1: > * Add brackets to ensure proper calculation order. Thanks, applied.
diff --git a/drivers/infiniband/hw/mlx5/qp.c b/drivers/infiniband/hw/mlx5/qp.c index e22d9572ae8f..04e9dbd97a3c 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);