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 <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>
This commit is contained in:
parent
46413898cf
commit
c23190303e
@ -106,7 +106,6 @@ int bnxt_mq_rx_configure(struct bnxt *bp)
|
|||||||
|
|
||||||
pools = RTE_MIN(pools, bp->rx_cp_nr_rings);
|
pools = RTE_MIN(pools, bp->rx_cp_nr_rings);
|
||||||
nb_q_per_grp = bp->rx_cp_nr_rings / pools;
|
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",
|
PMD_DRV_LOG(DEBUG, "pools = %u nb_q_per_grp = %u\n",
|
||||||
pools, nb_q_per_grp);
|
pools, nb_q_per_grp);
|
||||||
start_grp_id = 0;
|
start_grp_id = 0;
|
||||||
@ -165,6 +164,8 @@ skip_filter_allocation:
|
|||||||
}
|
}
|
||||||
|
|
||||||
out:
|
out:
|
||||||
|
bp->rx_num_qs_per_vnic = nb_q_per_grp;
|
||||||
|
|
||||||
if (dev_conf->rxmode.mq_mode & ETH_MQ_RX_RSS_FLAG) {
|
if (dev_conf->rxmode.mq_mode & ETH_MQ_RX_RSS_FLAG) {
|
||||||
struct rte_eth_rss_conf *rss = &dev_conf->rx_adv_conf.rss_conf;
|
struct rte_eth_rss_conf *rss = &dev_conf->rx_adv_conf.rss_conf;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user