Message ID | d85515d6ef21a2fa8ef4c8293dce9b58df8a6297.1728550179.git.leon@kernel.org (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Jason Gunthorpe |
Headers | show |
Series | [rdma-rc] RDMA/mlx5: Round max_rd_atomic/max_dest_rd_atomic up instead of down | expand |
On Thu, Oct 10, 2024 at 11:50:23AM +0300, Leon Romanovsky wrote: > From: Patrisious Haddad <phaddad@nvidia.com> > > After the cited commit below max_dest_rd_atomic and max_rd_atomic values > are being rounded down to the next power of 2. As opposed to the old > behavior and mlx4 driver where they used to be rounded up instead. > > In order to stay consistent with older code and other drivers, revert to > using fls round function which rounds up to the next power of 2. > > Fixes: f18e26af6aba ("RDMA/mlx5: Convert modify QP to use MLX5_SET macros") > Signed-off-by: Patrisious Haddad <phaddad@nvidia.com> > Reviewed-by: Maher Sanalla <msanalla@nvidia.com> > Signed-off-by: Leon Romanovsky <leonro@nvidia.com> > --- > drivers/infiniband/hw/mlx5/qp.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) Applied to for-rc, thanks Jason
diff --git a/drivers/infiniband/hw/mlx5/qp.c b/drivers/infiniband/hw/mlx5/qp.c index 849a160f99bc..88b6d9797a33 100644 --- a/drivers/infiniband/hw/mlx5/qp.c +++ b/drivers/infiniband/hw/mlx5/qp.c @@ -4297,14 +4297,14 @@ static int __mlx5_ib_modify_qp(struct ib_qp *ibqp, MLX5_SET(qpc, qpc, retry_count, attr->retry_cnt); if (attr_mask & IB_QP_MAX_QP_RD_ATOMIC && attr->max_rd_atomic) - MLX5_SET(qpc, qpc, log_sra_max, ilog2(attr->max_rd_atomic)); + MLX5_SET(qpc, qpc, log_sra_max, fls(attr->max_rd_atomic - 1)); if (attr_mask & IB_QP_SQ_PSN) MLX5_SET(qpc, qpc, next_send_psn, attr->sq_psn); if (attr_mask & IB_QP_MAX_DEST_RD_ATOMIC && attr->max_dest_rd_atomic) MLX5_SET(qpc, qpc, log_rra_max, - ilog2(attr->max_dest_rd_atomic)); + fls(attr->max_dest_rd_atomic - 1)); if (attr_mask & (IB_QP_ACCESS_FLAGS | IB_QP_MAX_DEST_RD_ATOMIC)) { err = set_qpc_atomic_flags(qp, attr, attr_mask, qpc);