On Wed, Jun 3, 2026 at 1:50 PM Mohammad Shuab Siddique < [email protected]> wrote:
> From: Mohammad Shuab Siddique <[email protected]> > > Fixed VFs attempting global RSS configuration which is not > permitted by firmware. VFs (including trusted VFs) must use > per-VNIC RSS configuration with actual vnic_id and rss_ctx_idx > values. > > Cc: [email protected] > Signed-off-by: Mohammad Shuab Siddique < > [email protected]> > Acked-by: Kishore Padmanabha <[email protected]> > --- > drivers/net/bnxt/bnxt_hwrm.c | 18 ++++++++++++++++-- > 1 file changed, 16 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c > index 0c82935de9..afc948ac29 100644 > --- a/drivers/net/bnxt/bnxt_hwrm.c > +++ b/drivers/net/bnxt/bnxt_hwrm.c > @@ -2970,8 +2970,22 @@ bnxt_hwrm_vnic_rss_cfg_hash_mode_p5(struct bnxt > *bp, struct bnxt_vnic_info *vnic > req.hash_mode_flags = BNXT_HASH_MODE_INNERMOST; > else > req.hash_mode_flags = vnic->hash_mode; > - req.vnic_id = rte_cpu_to_le_16(BNXT_DFLT_VNIC_ID_INVALID); > - req.rss_ctx_idx = rte_cpu_to_le_16(BNXT_RSS_CTX_IDX_INVALID); > + > + /* VFs must use actual vnic_id for per-VNIC configuration. > + * PFs can use INVALID vnic_id for global configuration. > + * This is because VFs don't have permission to configure > + * global hash mode, even if they're trusted. > + */ > + if (BNXT_VF(bp)) { > + req.vnic_id = rte_cpu_to_le_16(vnic->fw_vnic_id); > + req.rss_ctx_idx = rte_cpu_to_le_16(vnic->fw_grp_ids[0]); > + PMD_DRV_LOG_LINE(DEBUG, "VF using per-VNIC RSS config > (vnic_id=%u)", > + vnic->fw_vnic_id); > + } else { > + req.vnic_id = rte_cpu_to_le_16(BNXT_DFLT_VNIC_ID_INVALID); > + req.rss_ctx_idx = > rte_cpu_to_le_16(BNXT_RSS_CTX_IDX_INVALID); > + PMD_DRV_LOG_LINE(DEBUG, "PF using global RSS config"); > + } > > PMD_DRV_LOG_LINE(DEBUG, "RSS CFG: Hash level %d", > req.hash_mode_flags); > rc = bnxt_hwrm_send_message(bp, &req, sizeof(req), > -- > 2.47.3 > >
smime.p7s
Description: S/MIME Cryptographic Signature

