From: Kalesh AP <kalesh-anakkur.pura...@broadcom.com> 1. Added couple of missing return value checks 2. Moved the log message to right place.
Fixes: 14255b35153721 ("net/bnxt: fix queue start/stop operations") Signed-off-by: Kalesh AP <kalesh-anakkur.pura...@broadcom.com> Signed-off-by: Somnath Kotur <somnath.ko...@broadcom.com> --- drivers/net/bnxt/bnxt_ring.c | 4 ---- drivers/net/bnxt/bnxt_rxq.c | 21 ++++++++++++++------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/drivers/net/bnxt/bnxt_ring.c b/drivers/net/bnxt/bnxt_ring.c index a9952e0..18d3a51 100644 --- a/drivers/net/bnxt/bnxt_ring.c +++ b/drivers/net/bnxt/bnxt_ring.c @@ -539,10 +539,6 @@ int bnxt_alloc_hwrm_rx_ring(struct bnxt *bp, int queue_index) bnxt_db_write(&rxr->ag_db, rxr->ag_prod); } rxq->index = queue_index; - PMD_DRV_LOG(INFO, - "queue %d, rx_deferred_start %d, state %d!\n", - queue_index, rxq->rx_deferred_start, - bp->eth_dev->data->rx_queue_state[queue_index]); err_out: return rc; diff --git a/drivers/net/bnxt/bnxt_rxq.c b/drivers/net/bnxt/bnxt_rxq.c index e0eb890..7af0627 100644 --- a/drivers/net/bnxt/bnxt_rxq.c +++ b/drivers/net/bnxt/bnxt_rxq.c @@ -411,11 +411,10 @@ int bnxt_rx_queue_start(struct rte_eth_dev *dev, uint16_t rx_queue_id) return -EINVAL; } - dev->data->rx_queue_state[rx_queue_id] = RTE_ETH_QUEUE_STATE_STARTED; - bnxt_free_hwrm_rx_ring(bp, rx_queue_id); - bnxt_alloc_hwrm_rx_ring(bp, rx_queue_id); - PMD_DRV_LOG(INFO, "Rx queue started %d\n", rx_queue_id); + rc = bnxt_alloc_hwrm_rx_ring(bp, rx_queue_id); + if (rc) + return rc; if (dev_conf->rxmode.mq_mode & ETH_MQ_RX_RSS_FLAG) { vnic = rxq->vnic; @@ -433,12 +432,20 @@ int bnxt_rx_queue_start(struct rte_eth_dev *dev, uint16_t rx_queue_id) vnic, bp->grp_info[rx_queue_id].fw_grp_id); rc = bnxt_vnic_rss_configure(bp, vnic); + if (rc) + return rc; } - if (rc == 0) - rxq->rx_deferred_start = false; + dev->data->rx_queue_state[rx_queue_id] = + RTE_ETH_QUEUE_STATE_STARTED; + rxq->rx_deferred_start = false; - return rc; + PMD_DRV_LOG(INFO, + "queue %d, rx_deferred_start %d, state %d!\n", + rx_queue_id, rxq->rx_deferred_start, + bp->eth_dev->data->rx_queue_state[rx_queue_id]); + + return 0; } int bnxt_rx_queue_stop(struct rte_eth_dev *dev, uint16_t rx_queue_id) -- 1.8.3.1