[dpdk-stable] [PATCH v2] net/ixgbe: fix setting VF MAC address

Guinan Sun guinanx.sun at intel.com
Wed Mar 11 10:06:51 CET 2020


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 at dpdk.org

Signed-off-by: Guinan Sun <guinanx.sun at intel.com>
---
v2 changes:
* Modify commit log
---
 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



More information about the stable mailing list