net/bnxt: set fast-path pointers only if recovery succeeds

During reset recovery, fixed to set the fast-path pointers
only if recovery succeeds.

Fixes: 720b55ad278e ("net/bnxt: fix crash caused by error recovery")
Cc: stable@dpdk.org

Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
This commit is contained in:
Kalesh AP 2022-01-04 14:08:13 +05:30 committed by Ajit Khaparde
parent 604a6be6b6
commit de3fef20b9

View File

@ -4376,16 +4376,16 @@ static void bnxt_dev_recover(void *arg)
goto err_start;
}
rc = bnxt_restore_filters(bp);
if (rc)
goto err_start;
rte_eth_fp_ops[bp->eth_dev->data->port_id].rx_pkt_burst =
bp->eth_dev->rx_pkt_burst;
rte_eth_fp_ops[bp->eth_dev->data->port_id].tx_pkt_burst =
bp->eth_dev->tx_pkt_burst;
rte_mb();
rc = bnxt_restore_filters(bp);
if (rc)
goto err_start;
PMD_DRV_LOG(INFO, "Port: %u Recovered from FW reset\n",
bp->eth_dev->data->port_id);
pthread_mutex_unlock(&bp->err_recovery_lock);