<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Tue, Mar 24, 2026 at 4:46 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: Mohammad Shuab Siddique <<a href="mailto:mohammad-shuab.siddique@broadcom.com" target="_blank">mohammad-shuab.siddique@broadcom.com</a>><br>
<br>
The field was placed at incorrect offset in hwrm_func_qcfg_output causing<br>
legacy_l2_db_size_kb to read svif_info instead, producing a doorbell offset<br>
exceeding BAR2 and resulting in SIGSEGV on BCM57608.<br>
<br>
Move l2_db_multi_page_size_kb after mirror_vnic_id to match firmware<br>
response layout.<br>
<br>
Fixes: 04102f2ffc8c ("net/bnxt: update HWRM API to version 1.10.1.6")<br>
Fixes: 7a1f9c782b50 ("net/bnxt: add multi-doorbell support")<br>
<br>
Cc: <a href="mailto:stable@dpdk.org" target="_blank">stable@dpdk.org</a><br>
<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;font-size:11pt">Acked-by:  Kishore
Padmanabha <<a href="mailto:kishore.padmanabha@broadcom.com">kishore.padmanabha@broadcom.com</a>></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/hsi_struct_def_dpdk.h | 12 ++++++------<br>
 1 file changed, 6 insertions(+), 6 deletions(-)<br>
<br>
diff --git a/drivers/net/bnxt/hsi_struct_def_dpdk.h b/drivers/net/bnxt/hsi_struct_def_dpdk.h<br>
index 26d5e9ca78..1a8874f5b6 100644<br>
--- a/drivers/net/bnxt/hsi_struct_def_dpdk.h<br>
+++ b/drivers/net/bnxt/hsi_struct_def_dpdk.h<br>
@@ -16277,12 +16277,6 @@ struct __rte_packed_begin hwrm_func_qcfg_output {<br>
         * of the doorbell BAR between L2 and RoCE is required.<br>
         */<br>
        uint16_t        l2_doorbell_bar_size_kb;<br>
-       /*<br>
-        * The size of the doorbell BAR in KBytes reserved for multi-L2<br>
-        * doorbell pages. This area is a subset of l2_doorbell_bar_size_kb,<br>
-        * which is size of the total doorbell BAR space reserved for L2.<br>
-        */<br>
-       uint16_t        l2_db_multi_page_size_kb;<br>
        /*<br>
         * A bitmask indicating the active endpoints. Each bit represents a<br>
         * specific endpoint, with bit 0 indicating EP 0 and bit 3 indicating<br>
@@ -16605,6 +16599,12 @@ struct __rte_packed_begin hwrm_func_qcfg_output {<br>
         * or a raw QP.<br>
         */<br>
        uint16_t        mirror_vnic_id;<br>
+       /*<br>
+        * The size of the doorbell BAR in KBytes reserved for multi-L2<br>
+        * doorbell pages. This area is a subset of l2_doorbell_bar_size_kb,<br>
+        * which is size of the total doorbell BAR space reserved for L2.<br>
+        */<br>
+       uint16_t        l2_db_multi_page_size_kb;<br>
        uint8_t unused_7[7];<br>
        /*<br>
         * This field is used in Output records to indicate that the output<br>
-- <br>
2.47.3<br>
<br>
</blockquote></div></div>