From 35e8a46f795a151223aad71dd86d8614f26f3929 Mon Sep 17 00:00:00 2001 From: Huisong Li Date: Fri, 24 Jun 2022 16:59:46 +0800 Subject: [PATCH] net/hns3: cancel heartbeat alarm when VF reset The purpose of the heartbeat alarm is to keep alive for VF. The mailbox channel is disabled when VF is reset, and the heartbeat mailbox message will fail to send. If the reset is not complete, the error information about the heartbeat sending failure will be printed continuously. In fact, VF does set alive when VF restore its configuration. So the heartbeat alarm can be canceled to prepare to start reset and start the alarm when start service. Signed-off-by: Huisong Li Signed-off-by: Dongdong Liu --- drivers/net/hns3/hns3_ethdev_vf.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/net/hns3/hns3_ethdev_vf.c b/drivers/net/hns3/hns3_ethdev_vf.c index 3abd4aafcb..18504e6926 100644 --- a/drivers/net/hns3/hns3_ethdev_vf.c +++ b/drivers/net/hns3/hns3_ethdev_vf.c @@ -1976,6 +1976,8 @@ hns3vf_stop_service(struct hns3_adapter *hns) } else hw->reset.mbuf_deferred_free = false; + rte_eal_alarm_cancel(hns3vf_keep_alive_handler, eth_dev); + /* * It is cumbersome for hardware to pick-and-choose entries for deletion * from table space. Hence, for function reset software intervention is @@ -1997,6 +1999,10 @@ hns3vf_start_service(struct hns3_adapter *hns) eth_dev = &rte_eth_devices[hw->data->port_id]; hns3_set_rxtx_function(eth_dev); hns3_mp_req_start_rxtx(eth_dev); + + rte_eal_alarm_set(HNS3VF_KEEP_ALIVE_INTERVAL, hns3vf_keep_alive_handler, + eth_dev); + if (hw->adapter_state == HNS3_NIC_STARTED) { hns3vf_start_poll_job(eth_dev); -- 2.39.5