From: NĂ©lio Laranjeiro Date: Thu, 25 Jan 2018 08:22:19 +0000 (+0100) Subject: net/mlx5: fix reception of multiple MAC addresses X-Git-Url: http://git.droids-corp.org/?p=dpdk.git;a=commitdiff_plain;h=5a29b9a35a7214e2e36764ea67e13d7573eb925a net/mlx5: fix reception of multiple MAC addresses When promiscuous is disabled, adding/removing a mac address is ignored causing the packet to not be received or still being received corresponding to the add or remove request. Fixes: 272733b5ebfd ("net/mlx5: use flow to enable unicast traffic") Cc: stable@dpdk.org Signed-off-by: Nelio Laranjeiro Acked-by: Shahaf Shuler --- diff --git a/drivers/net/mlx5/mlx5_mac.c b/drivers/net/mlx5/mlx5_mac.c index a5e78ec8dc..a1cb987cb1 100644 --- a/drivers/net/mlx5/mlx5_mac.c +++ b/drivers/net/mlx5/mlx5_mac.c @@ -95,7 +95,7 @@ mlx5_mac_addr_remove(struct rte_eth_dev *dev, uint32_t index) { assert(index < MLX5_MAX_MAC_ADDRESSES); memset(&dev->data->mac_addrs[index], 0, sizeof(struct ether_addr)); - if (!dev->data->promiscuous && !dev->data->all_multicast) + if (!dev->data->promiscuous) mlx5_traffic_restart(dev); } @@ -134,7 +134,7 @@ mlx5_mac_addr_add(struct rte_eth_dev *dev, struct ether_addr *mac, return EADDRINUSE; } dev->data->mac_addrs[index] = *mac; - if (!dev->data->promiscuous && !dev->data->all_multicast) + if (!dev->data->promiscuous) mlx5_traffic_restart(dev); return ret; }