bnxt_re/lib: Fix for larger WR post_list sizes
In bnxt_re_send_wr_complete(), there is a type truncation bug.
The total count of slots saved in cur_slots_cnt is a uint32_t.
This gets assigned to a uint8_t (slots) before passing it to
bnxt_re_incr_tail() since it takes a uint8_t argument for the
slot count. And in the process, the value gets truncated.
Fix the type of slots variable.
Fixes: 6514d99eb8aa ("bnxt_re/lib: Add WR API send functions")
Reviewed-by: Selvin Xavier <selvin.xavier@broadcom.com>
Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Kashyap Desai <kashyap.desai@broadcom.com>
Signed-off-by: Sriharsha Basavapatna <sriharsha.basavapatna@broadcom.com>
Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
diff --git a/providers/bnxt_re/memory.h b/providers/bnxt_re/memory.h
index 7412e73..a0089ee 100644
--- a/providers/bnxt_re/memory.h
+++ b/providers/bnxt_re/memory.h
@@ -130,7 +130,7 @@
return que->tail == que->head;
}
-static inline void bnxt_re_incr_tail(struct bnxt_re_queue *que, uint8_t cnt)
+static inline void bnxt_re_incr_tail(struct bnxt_re_queue *que, uint32_t cnt)
{
que->tail += cnt;
if (que->tail >= que->depth) {
diff --git a/providers/bnxt_re/verbs.c b/providers/bnxt_re/verbs.c
index 2c10f57..e1f7fd4 100644
--- a/providers/bnxt_re/verbs.c
+++ b/providers/bnxt_re/verbs.c
@@ -1721,7 +1721,7 @@
struct bnxt_re_qp *qp = to_bnxt_re_qp((struct ibv_qp *)ibvqp);
struct bnxt_re_queue *sq = qp->jsqq->hwque;
int err = qp->wr_sq.error;
- uint8_t slots;
+ uint32_t slots;
if (unlikely(err))
goto exit;