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

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to