<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Wed, Jun 3, 2026 at 1:50 PM Mohammad Shuab Siddique <<a href="mailto:mohammad-shuab.siddique@broadcom.com">mohammad-shuab.siddique@broadcom.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">From: Zoe Cheimets <<a href="mailto:zoe.cheimets@broadcom.com" target="_blank">zoe.cheimets@broadcom.com</a>><br>
<br>
In bnxt_ring.c, the result on line 389 was auto-sign extended by<br>
the compiler because the arithmetic result is an int, but the<br>
dpi_offset is uint64_t. Fix by casting the result to uint64_t<br>
before the multiplication forces extension. To ensure that a<br>
negative integer is not being cast to uint64_t, add a check in<br>
the if-statement.<br>
<br>
Fixes: 7a1f9c782b50 ("net/bnxt: add multi-doorbell support")<br>
Cc: <a href="mailto:stable@dpdk.org" target="_blank">stable@dpdk.org</a><br>
Signed-off-by: Zoe Cheimets <<a href="mailto:zoe.cheimets@broadcom.com" target="_blank">zoe.cheimets@broadcom.com</a>><br>
Signed-off-by: Mohammad Shuab Siddique <<a href="mailto:mohammad-shuab.siddique@broadcom.com" target="_blank">mohammad-shuab.siddique@broadcom.com</a>><br></blockquote><div><span style="font-family:Calibri,sans-serif;font-size:11pt">Acked-by:</span><span style="font-family:Calibri,sans-serif;font-size:11pt"> </span><span style="font-family:Calibri,sans-serif;font-size:11pt">Kishore
Padmanabha <</span><a href="mailto:kishore.padmanabha@broadcom.com" style="font-family:Calibri,sans-serif;font-size:11pt;color:rgb(5,99,193)">kishore.padmanabha@broadcom.com</a><span style="font-family:Calibri,sans-serif;font-size:11pt">></span> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
---<br>
drivers/net/bnxt/bnxt_ring.c | 7 ++++---<br>
1 file changed, 4 insertions(+), 3 deletions(-)<br>
<br>
diff --git a/drivers/net/bnxt/bnxt_ring.c b/drivers/net/bnxt/bnxt_ring.c<br>
index ccca779b97..579b73d2ce 100644<br>
--- a/drivers/net/bnxt/bnxt_ring.c<br>
+++ b/drivers/net/bnxt/bnxt_ring.c<br>
@@ -385,9 +385,10 @@ void bnxt_set_db(struct bnxt *bp,<br>
db->doorbell = (char *)bp->doorbell_base + db_offset;<br>
<br>
if (bp->fw_cap & BNXT_FW_CAP_MULTI_DB &&<br>
- dpi != BNXT_PRIVILEGED_DPI) {<br>
- dpi_offset = (dpi - bp->nq_dpi_start) *<br>
- bp->db_page_size;<br>
+ dpi != BNXT_PRIVILEGED_DPI &&<br>
+ dpi >= bp->nq_dpi_start) {<br>
+ dpi_offset = (uint64_t)(dpi - bp->nq_dpi_start) *<br>
+ bp->db_page_size;<br>
db->doorbell = (char *)db->doorbell + dpi_offset;<br>
}<br>
db->db_key64 |= (uint64_t)fid << DBR_XID_SFT;<br>
-- <br>
2.47.3<br>
<br>
</blockquote></div></div>