Skip to content

Commit

Permalink
bnxt_re/lib: Fix the stride calculation for MSN/PSN area
Browse files Browse the repository at this point in the history
[ Upstream commit 65197a4 ]

Library expects ilog2 of psn_size while calculating the stride.
ilog32 returns log2(v) + 1 and the calculation fails since
the psn size is a power of 2 value. Fix by passing psn_size - 1.

Fixes: 0a0e0d0 ("bnxt_re/lib: Adds MSN table capability for Gen P7 adapters")
Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
Signed-off-by: Nicolas Morey <nmorey@suse.com>
  • Loading branch information
selvintxavier authored and nmorey committed May 27, 2024
1 parent 1426311 commit 336e55b
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion providers/bnxt_re/verbs.c
Original file line number Diff line number Diff line change
Expand Up @@ -1236,7 +1236,7 @@ static int bnxt_re_alloc_queues(struct bnxt_re_context *cntx,
/* psn_depth extra entries of size que->stride */
psn_size = bnxt_re_get_psne_size(qp->cntx);
psn_depth = (nswr * psn_size) / que->stride;
que->pad_stride_log2 = (uint32_t)ilog32(psn_size);
que->pad_stride_log2 = ilog32(psn_size - 1);
if ((nswr * psn_size) % que->stride)
psn_depth++;
que->depth += psn_depth;
Expand Down

0 comments on commit 336e55b

Please sign in to comment.