net/ixgbe: fix setting VF MAC address
authorGuinan Sun <guinanx.sun@intel.com>
Wed, 11 Mar 2020 09:06:51 +0000 (09:06 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Wed, 18 Mar 2020 14:29:39 +0000 (15:29 +0100)
The reason why PF cannot receive data normally is that vf performed
the clear_rar operation through dev close without adding a mac address. 
This will cause the association between the index and rx address set
by VMDq to be cancelled,thus affecting the data reception of PF. The
correction method is to add a check action, and do not perform the
set_rar operation without adding a mac address to prevent affecting the
reception of data.

Fixes: 3c4270187518 ("net/ixgbe: support VF MAC address add/remove")
Cc: stable@dpdk.org
Signed-off-by: Guinan Sun <guinanx.sun@intel.com>
Acked-by: Xiaolong Ye <xiaolong.ye@intel.com>
drivers/net/ixgbe/ixgbe_pf.c

index afae21f..67b5bef 100644 (file)
@@ -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;
 }