From aadae082ee46be8e6800a53a316eca558a31d103 Mon Sep 17 00:00:00 2001 From: Kalesh AP Date: Wed, 13 Nov 2019 13:59:40 +0530 Subject: [PATCH] net/bnxt: add checks for firmware reset Driver should fail the eth_dev_ops callbacks and accessing Tx and Rx queues when device is in reset or in error state. Added missing checks for fw reset in few routines. Fixes: be14720def9c ("net/bnxt: support FW reset") Reviewed-by: Santoshkumar Karanappa Rastapur Signed-off-by: Kalesh AP Signed-off-by: Ajit Khaparde --- drivers/net/bnxt/bnxt_ethdev.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c index e39b87365f..94dbe2f1dc 100644 --- a/drivers/net/bnxt/bnxt_ethdev.c +++ b/drivers/net/bnxt/bnxt_ethdev.c @@ -2067,8 +2067,12 @@ static void bnxt_rxq_info_get_op(struct rte_eth_dev *dev, uint16_t queue_id, struct rte_eth_rxq_info *qinfo) { + struct bnxt *bp = dev->data->dev_private; struct bnxt_rx_queue *rxq; + if (is_bnxt_in_error(bp)) + return; + rxq = dev->data->rx_queues[queue_id]; qinfo->mp = rxq->mb_pool; @@ -2084,8 +2088,12 @@ static void bnxt_txq_info_get_op(struct rte_eth_dev *dev, uint16_t queue_id, struct rte_eth_txq_info *qinfo) { + struct bnxt *bp = dev->data->dev_private; struct bnxt_tx_queue *txq; + if (is_bnxt_in_error(bp)) + return; + txq = dev->data->tx_queues[queue_id]; qinfo->nb_desc = txq->nb_tx_desc; -- 2.20.1