[v7,3/4] net/bnxt: notify applications about device reset/recovery
Checks
Commit Message
From: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
When the driver receives RESET_NOTIFY async event from FW or detects
an error condition, it should update the application that FW is going
to reset. Once the driver recovers from the reset, update the reset
recovery status to application as well.
Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
drivers/net/bnxt/bnxt_cpr.c | 4 ++++
drivers/net/bnxt/bnxt_ethdev.c | 8 +++++++-
2 files changed, 11 insertions(+), 1 deletion(-)
@@ -180,6 +180,10 @@ void bnxt_handle_async_event(struct bnxt *bp,
return;
}
+ rte_eth_dev_callback_process(bp->eth_dev,
+ RTE_ETH_EVENT_ERR_RECOVERING,
+ NULL);
+
pthread_mutex_lock(&bp->err_recovery_lock);
event_data = data1;
/* timestamp_lo/hi values are in units of 100ms */
@@ -4383,7 +4383,9 @@ static void bnxt_dev_recover(void *arg)
PMD_DRV_LOG(INFO, "Port: %u Recovered from FW reset\n",
bp->eth_dev->data->port_id);
pthread_mutex_unlock(&bp->err_recovery_lock);
-
+ rte_eth_dev_callback_process(bp->eth_dev,
+ RTE_ETH_EVENT_RECOVERED,
+ NULL);
return;
err_start:
bnxt_dev_stop(bp->eth_dev);
@@ -4561,6 +4563,10 @@ static void bnxt_check_fw_health(void *arg)
PMD_DRV_LOG(ERR, "Detected FW dead condition\n");
+ rte_eth_dev_callback_process(bp->eth_dev,
+ RTE_ETH_EVENT_ERR_RECOVERING,
+ NULL);
+
if (bnxt_is_primary_func(bp))
wait_msec = info->primary_func_wait_period;
else