This problem occurs because clear_rar is executed at the wrong time,
 so PF cannot receive data normally.
This patch is used to modify the calling logic of clear_rar.

Fixes: 3c4270187518 ("net/ixgbe: support VF MAC address add/remove")
Cc: sta...@dpdk.org

Signed-off-by: Guinan Sun <guinanx....@intel.com>
---
 drivers/net/ixgbe/ixgbe_pf.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ixgbe/ixgbe_pf.c b/drivers/net/ixgbe/ixgbe_pf.c
index afae21f81..67b5bef44 100644
--- a/drivers/net/ixgbe/ixgbe_pf.c
+++ b/drivers/net/ixgbe/ixgbe_pf.c
@@ -783,8 +783,10 @@ ixgbe_set_vf_macvlan_msg(struct rte_eth_dev *dev, uint32_t 
vf, uint32_t *msgbuf)
                hw->mac.ops.set_rar(hw, vf_info[vf].mac_count,
                                new_mac, vf, IXGBE_RAH_AV);
        } else {
-               hw->mac.ops.clear_rar(hw, vf_info[vf].mac_count);
-               vf_info[vf].mac_count = 0;
+               if (vf_info[vf].mac_count) {
+                       hw->mac.ops.clear_rar(hw, vf_info[vf].mac_count);
+                       vf_info[vf].mac_count = 0;
+               }
        }
        return 0;
 }
-- 
2.17.1

Reply via email to