From: Lance Richardson Date: Mon, 4 Nov 2019 20:27:45 +0000 (-0500) Subject: net/bnxt: keep consistent Rx queue start/stop state X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=f9241d2fae7d2762b5926a9dc732ae14757417ca;p=dpdk.git net/bnxt: keep consistent Rx queue start/stop state Receive queue state needs to reflect "started" state when rebuilding the RSS table for Thor-based NICs. Move state update so that receive queues being started are included in the RSS table. Fixes: 38412304b50a ("net/bnxt: enable RSS for thor-based controllers") Cc: stable@dpdk.org Signed-off-by: Lance Richardson Reviewed-by: Ajit Khaparde --- diff --git a/drivers/net/bnxt/bnxt_rxq.c b/drivers/net/bnxt/bnxt_rxq.c index ab889c10e1..e82eda9d76 100644 --- a/drivers/net/bnxt/bnxt_rxq.c +++ b/drivers/net/bnxt/bnxt_rxq.c @@ -444,6 +444,8 @@ int bnxt_rx_queue_start(struct rte_eth_dev *dev, uint16_t rx_queue_id) * If queue is it started, we do not post buffers for Rx. */ rxq->rx_started = true; + dev->data->rx_queue_state[rx_queue_id] = RTE_ETH_QUEUE_STATE_STARTED; + bnxt_free_hwrm_rx_ring(bp, rx_queue_id); rc = bnxt_alloc_hwrm_rx_ring(bp, rx_queue_id); if (rc) @@ -469,11 +471,11 @@ int bnxt_rx_queue_start(struct rte_eth_dev *dev, uint16_t rx_queue_id) rc = bnxt_vnic_rss_configure(bp, vnic); } - if (rc == 0) + if (rc != 0) { dev->data->rx_queue_state[rx_queue_id] = - RTE_ETH_QUEUE_STATE_STARTED; - else + RTE_ETH_QUEUE_STATE_STOPPED; rxq->rx_started = false; + } PMD_DRV_LOG(INFO, "queue %d, rx_deferred_start %d, state %d!\n",