]> git.droids-corp.org - dpdk.git/commitdiff
net/hns3: increase time waiting for PF reset completion
authorHuisong Li <lihuisong@huawei.com>
Wed, 2 Mar 2022 00:35:01 +0000 (08:35 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Wed, 2 Mar 2022 11:38:52 +0000 (12:38 +0100)
On the case that PF and VF need to be reset, after the hardware reset is
complete, VF needs wait for 1 second to restore the configuration so
that VF does not fail to recover because PF reset isn't complete. But
the estimated time is not sufficient. This patch fixes it to 5 seconds.

Fixes: 2790c6464725 ("net/hns3: support device reset")
Cc: stable@dpdk.org
Signed-off-by: Huisong Li <lihuisong@huawei.com>
Acked-by: Min Hu (Connor) <humin29@huawei.com>
drivers/net/hns3/hns3_ethdev_vf.c

index 06ddf64184c87aa7ec0cc6ab67d75c94e194c063..9091706fe53e446297671c471409906a749a23e7 100644 (file)
@@ -1877,6 +1877,7 @@ hns3vf_is_reset_pending(struct hns3_adapter *hns)
 static int
 hns3vf_wait_hardware_ready(struct hns3_adapter *hns)
 {
+#define HNS3_WAIT_PF_RESET_READY_TIME 5
        struct hns3_hw *hw = &hns->hw;
        struct hns3_wait_data *wait_data = hw->reset.wait_data;
        struct timeval tv;
@@ -1897,12 +1898,14 @@ hns3vf_wait_hardware_ready(struct hns3_adapter *hns)
                        return 0;
 
                wait_data->check_completion = NULL;
-               wait_data->interval = 1 * MSEC_PER_SEC * USEC_PER_MSEC;
+               wait_data->interval = HNS3_WAIT_PF_RESET_READY_TIME *
+                       MSEC_PER_SEC * USEC_PER_MSEC;
                wait_data->count = 1;
                wait_data->result = HNS3_WAIT_REQUEST;
                rte_eal_alarm_set(wait_data->interval, hns3_wait_callback,
                                  wait_data);
-               hns3_warn(hw, "hardware is ready, delay 1 sec for PF reset complete");
+               hns3_warn(hw, "hardware is ready, delay %d sec for PF reset complete",
+                               HNS3_WAIT_PF_RESET_READY_TIME);
                return -EAGAIN;
        } else if (wait_data->result == HNS3_WAIT_TIMEOUT) {
                hns3_clock_gettime(&tv);