net/bnxt: fix port stop on error recovery failure

During live FW upgrade or error recovery, if restoring the filter
settings fail after port start, driver invokes bnxt_uninit_resources()
only. Fix it to invoke bnxt_dev_stop_op() first before calling
bnxt_uninit_resources().

Fixes: df6cd7c1f73a ("net/bnxt: handle reset notify async event from FW")
Cc: stable@dpdk.org

Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Rahul Gupta <rahul.gupta@broadcom.com>
This commit is contained in:
Kalesh AP 2020-02-06 22:03:12 +05:30 committed by Ferruh Yigit
parent 990d4978fa
commit e5acec6929

View File

@ -4022,15 +4022,17 @@ static void bnxt_dev_recover(void *arg)
rc = bnxt_dev_start_op(bp->eth_dev);
if (rc) {
PMD_DRV_LOG(ERR, "Failed to start port after reset\n");
goto err;
goto err_start;
}
rc = bnxt_restore_filters(bp);
if (rc)
goto err;
goto err_start;
PMD_DRV_LOG(INFO, "Recovered from FW reset\n");
return;
err_start:
bnxt_dev_stop_op(bp->eth_dev);
err:
bp->flags |= BNXT_FLAG_FATAL_ERROR;
bnxt_uninit_resources(bp, false);