net: hns3: enable broadcast promisc mode when initializing VF
authorJian Shen <shenjian15@huawei.com>
Thu, 4 Jul 2019 14:04:20 +0000 (22:04 +0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 5 Jul 2019 22:39:38 +0000 (15:39 -0700)
For revision 0x20, the broadcast promisc is enabled by firmware,
it's unnecessary to enable it when initializing VF.

For revision 0x21, it's necessary to enable broadcast promisc mode
when initializing or re-initializing VF, otherwise, it will be
unable to send and receive promisc packets.

Fixes: f01f5559cac8 ("net: hns3: don't allow vf to enable promisc mode")
Signed-off-by: Jian Shen <shenjian15@huawei.com>
Signed-off-by: Peng Li <lipeng321@huawei.com>
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c

index 42006cccecbe6316a5e0e23cfcee12369619f46e..ff7e8cb68ea8d1767933792bc2f21e7384797fe8 100644 (file)
@@ -2589,6 +2589,12 @@ static int hclgevf_reset_hdev(struct hclgevf_dev *hdev)
                return ret;
        }
 
+       if (pdev->revision >= 0x21) {
+               ret = hclgevf_set_promisc_mode(hdev, true);
+               if (ret)
+                       return ret;
+       }
+
        dev_info(&hdev->pdev->dev, "Reset done\n");
 
        return 0;
@@ -2668,9 +2674,11 @@ static int hclgevf_init_hdev(struct hclgevf_dev *hdev)
         * firmware makes sure broadcast packets can be accepted.
         * For revision 0x21, default to enable broadcast promisc mode.
         */
-       ret = hclgevf_set_promisc_mode(hdev, true);
-       if (ret)
-               goto err_config;
+       if (pdev->revision >= 0x21) {
+               ret = hclgevf_set_promisc_mode(hdev, true);
+               if (ret)
+                       goto err_config;
+       }
 
        /* Initialize RSS for this VF */
        ret = hclgevf_rss_init_hw(hdev);