43 lines
1.6 KiB
Diff
43 lines
1.6 KiB
Diff
From 0f27af14383edac1efaf140d7cbe2d7dfdab7318 Mon Sep 17 00:00:00 2001
|
|
From: Peng Li <lipeng321@huawei.com>
|
|
Date: Thu, 20 Dec 2018 11:52:00 +0800
|
|
Subject: [PATCH 24/31] net: hns3: fix a bug caused by udelay
|
|
Origin: https://git.kernel.org/linus/1b7d7b0581173219b82abbd81c88cf8aa7d402c2
|
|
|
|
udelay() in driver may always occupancy processor. If there is only
|
|
one cpu in system, the VF driver may initialize fail when insmod
|
|
PF and VF driver in the same system. This patch use msleep() to free
|
|
cpu when VF wait PF message.
|
|
|
|
Signed-off-by: Peng Li <lipeng321@huawei.com>
|
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
---
|
|
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c | 4 ++--
|
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c
|
|
index e9d5a4f96304..499131840041 100644
|
|
--- a/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c
|
|
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c
|
|
@@ -26,7 +26,7 @@ static int hclgevf_get_mbx_resp(struct hclgevf_dev *hdev, u16 code0, u16 code1,
|
|
u8 *resp_data, u16 resp_len)
|
|
{
|
|
#define HCLGEVF_MAX_TRY_TIMES 500
|
|
-#define HCLGEVF_SLEEP_USCOEND 1000
|
|
+#define HCLGEVF_SLEEP_USECOND 1000
|
|
struct hclgevf_mbx_resp_status *mbx_resp;
|
|
u16 r_code0, r_code1;
|
|
int i = 0;
|
|
@@ -40,7 +40,7 @@ static int hclgevf_get_mbx_resp(struct hclgevf_dev *hdev, u16 code0, u16 code1,
|
|
}
|
|
|
|
while ((!hdev->mbx_resp.received_resp) && (i < HCLGEVF_MAX_TRY_TIMES)) {
|
|
- udelay(HCLGEVF_SLEEP_USCOEND);
|
|
+ usleep_range(HCLGEVF_SLEEP_USECOND, HCLGEVF_SLEEP_USECOND * 2);
|
|
i++;
|
|
}
|
|
|
|
--
|
|
2.20.1
|
|
|