net/i40e: add workaround promiscuous disable
authorRosen Xu <rosen.xu@intel.com>
Wed, 18 Apr 2018 08:11:41 +0000 (16:11 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Mon, 14 May 2018 21:31:48 +0000 (22:31 +0100)
In scenario of Kernel Driver runs on PF and PMD runs on VF, PMD exit
doesn't disable promiscuous mode, this will cause vlan filter set by
Kernel Driver will not take effect.

This patch will fix it, add promiscuous disable at device disable.

Signed-off-by: Rosen Xu <rosen.xu@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
drivers/net/i40e/i40e_ethdev_vf.c

index b9dea2e..a1e9ee7 100644 (file)
@@ -2287,6 +2287,14 @@ i40evf_dev_close(struct rte_eth_dev *dev)
 
        i40evf_dev_stop(dev);
        i40e_dev_free_queues(dev);
+       /*
+        * disable promiscuous mode before reset vf
+        * it is a workaround solution when work with kernel driver
+        * and it is not the normal way
+        */
+       i40evf_dev_promiscuous_disable(dev);
+       i40evf_dev_allmulticast_disable(dev);
+
        i40evf_reset_vf(hw);
        i40e_shutdown_adminq(hw);
        /* disable uio intr before callback unregister */