From: Venkat Duvvuru Date: Wed, 24 Feb 2021 15:55:46 +0000 (+0530) Subject: net/bnxt: fix queues per VNIC X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=c23190303efd6884eaeeda7afe23c2a158f4c1ee;p=dpdk.git net/bnxt: fix queues per VNIC 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: 36024b2e7fe5 ("net/bnxt: allow dynamic creation of VNIC") Cc: stable@dpdk.org Signed-off-by: Venkat Duvvuru Reviewed-by: Somnath Kotur Reviewed-by: Kalesh AP Reviewed-by: Ajit Khaparde --- diff --git a/drivers/net/bnxt/bnxt_rxq.c b/drivers/net/bnxt/bnxt_rxq.c index f46b10c1c5..53a9b52a46 100644 --- a/drivers/net/bnxt/bnxt_rxq.c +++ b/drivers/net/bnxt/bnxt_rxq.c @@ -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; @@ -165,6 +164,8 @@ skip_filter_allocation: } 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;