RDMA/mlx5: Round max_rd_atomic/max_dest_rd_atomic up instead of down
[ Upstream commit78ed28e08e] 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:f18e26af6a("RDMA/mlx5: Convert modify QP to use MLX5_SET macros") Link: https://patch.msgid.link/r/d85515d6ef21a2fa8ef4c8293dce9b58df8a6297.1728550179.git.leon@kernel.org Signed-off-by: Patrisious Haddad <phaddad@nvidia.com> Reviewed-by: Maher Sanalla <msanalla@nvidia.com> Signed-off-by: Leon Romanovsky <leonro@nvidia.com> Signed-off-by: Jason Gunthorpe <jgg@nvidia.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
15d3b1735e
commit
adf37466c3
@@ -4182,14 +4182,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);
|
||||
|
||||
Reference in New Issue
Block a user