Skip to content

Commit

Permalink
net/bnxt: fix queues per VNIC
Browse files Browse the repository at this point in the history
[ upstream commit c231903 ]

Update queues per VNIC in single queue mode.
bp->rx_num_qs_per_vnic is not initialized in the single queue mode.
As a result of this when an interface is reconfigured to single
queue mode from an existing multiqueue mode, bp->rx_num_qs_per_vnic
is not updated to the value of 1. Hence, the driver will try to
access more than one queue resulting in a crash.

This patch fixes it by initializing bp->rx_num_qs_per_vnic in the
single queue mode as well.

Fixes: 36024b2 ("net/bnxt: allow dynamic creation of VNIC")

Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
  • Loading branch information
Venkat Duvvuru authored and cpaelzer committed May 11, 2021
1 parent ae70631 commit 7accc1f
Showing 1 changed file with 2 additions and 1 deletion.
3 changes: 2 additions & 1 deletion drivers/net/bnxt/bnxt_rxq.c
Expand Up @@ -106,7 +106,6 @@ int bnxt_mq_rx_configure(struct bnxt *bp)

pools = RTE_MIN(pools, bp->rx_cp_nr_rings);
nb_q_per_grp = bp->rx_cp_nr_rings / pools;
bp->rx_num_qs_per_vnic = nb_q_per_grp;
PMD_DRV_LOG(DEBUG, "pools = %u nb_q_per_grp = %u\n",
pools, nb_q_per_grp);
start_grp_id = 0;
Expand Down Expand Up @@ -165,6 +164,8 @@ int bnxt_mq_rx_configure(struct bnxt *bp)
}

out:
bp->rx_num_qs_per_vnic = nb_q_per_grp;

if (dev_conf->rxmode.mq_mode & ETH_MQ_RX_RSS_FLAG) {
struct rte_eth_rss_conf *rss = &dev_conf->rx_adv_conf.rss_conf;

Expand Down

0 comments on commit 7accc1f

Please sign in to comment.