]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
net: hns3: fix a bug caused by udelay
authorPeng Li <lipeng321@huawei.com>
Thu, 20 Dec 2018 03:52:00 +0000 (11:52 +0800)
committerKleber Sacilotto de Souza <kleber.souza@canonical.com>
Mon, 14 Jan 2019 09:28:55 +0000 (09:28 +0000)
BugLink: https://bugs.launchpad.net/bugs/1810457
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>
(cherry picked from commit 1b7d7b0581173219b82abbd81c88cf8aa7d402c2)
Signed-off-by: dann frazier <dann.frazier@canonical.com>
Acked-by: Stefan Bader <stefan.bader@canonical.com>
Acked-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
Signed-off-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c

index ef9c8e6eca28f2e26aa42f864c707c6a1befdb9b..84653f58b2d1048cc6ff1e53382e46ba3812eea2 100644 (file)
@@ -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;
@@ -43,7 +43,7 @@ static int hclgevf_get_mbx_resp(struct hclgevf_dev *hdev, u16 code0, u16 code1,
                if (test_bit(HCLGEVF_STATE_CMD_DISABLE, &hdev->state))
                        return -EIO;
 
-               udelay(HCLGEVF_SLEEP_USCOEND);
+               usleep_range(HCLGEVF_SLEEP_USECOND, HCLGEVF_SLEEP_USECOND * 2);
                i++;
        }