From 5a29b9a35a7214e2e36764ea67e13d7573eb925a Mon Sep 17 00:00:00 2001 From: =?utf8?q?N=C3=A9lio=20Laranjeiro?= Date: Thu, 25 Jan 2018 09:22:19 +0100 Subject: [PATCH] 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 --- drivers/net/mlx5/mlx5_mac.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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; } -- 2.20.1