<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>