On Tue, Mar 24, 2026 at 4:46 PM Mohammad Shuab Siddique < [email protected]> wrote:
> From: Mohammad Shuab Siddique <[email protected]> > > The field was placed at incorrect offset in hwrm_func_qcfg_output causing > legacy_l2_db_size_kb to read svif_info instead, producing a doorbell offset > exceeding BAR2 and resulting in SIGSEGV on BCM57608. > > Move l2_db_multi_page_size_kb after mirror_vnic_id to match firmware > response layout. > > Fixes: 04102f2ffc8c ("net/bnxt: update HWRM API to version 1.10.1.6") > Fixes: 7a1f9c782b50 ("net/bnxt: add multi-doorbell support") > > Cc: [email protected] > > Signed-off-by: Mohammad Shuab Siddique < > [email protected]> > Acked-by: Kishore Padmanabha <[email protected]> > --- > drivers/net/bnxt/hsi_struct_def_dpdk.h | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/drivers/net/bnxt/hsi_struct_def_dpdk.h > b/drivers/net/bnxt/hsi_struct_def_dpdk.h > index 26d5e9ca78..1a8874f5b6 100644 > --- a/drivers/net/bnxt/hsi_struct_def_dpdk.h > +++ b/drivers/net/bnxt/hsi_struct_def_dpdk.h > @@ -16277,12 +16277,6 @@ struct __rte_packed_begin hwrm_func_qcfg_output { > * of the doorbell BAR between L2 and RoCE is required. > */ > uint16_t l2_doorbell_bar_size_kb; > - /* > - * The size of the doorbell BAR in KBytes reserved for multi-L2 > - * doorbell pages. This area is a subset of > l2_doorbell_bar_size_kb, > - * which is size of the total doorbell BAR space reserved for L2. > - */ > - uint16_t l2_db_multi_page_size_kb; > /* > * A bitmask indicating the active endpoints. Each bit represents a > * specific endpoint, with bit 0 indicating EP 0 and bit 3 > indicating > @@ -16605,6 +16599,12 @@ struct __rte_packed_begin hwrm_func_qcfg_output { > * or a raw QP. > */ > uint16_t mirror_vnic_id; > + /* > + * The size of the doorbell BAR in KBytes reserved for multi-L2 > + * doorbell pages. This area is a subset of > l2_doorbell_bar_size_kb, > + * which is size of the total doorbell BAR space reserved for L2. > + */ > + uint16_t l2_db_multi_page_size_kb; > uint8_t unused_7[7]; > /* > * This field is used in Output records to indicate that the output > -- > 2.47.3 > >
smime.p7s
Description: S/MIME Cryptographic Signature

