On the net/mlx5 side, the OS specific helpers do not need to implement again checks on the MAC index, the cde from mlx5_mac.c already does this.
Cascading this consideration, validating the MAC index against MLX5_MAX_MAC_ADDRESSES in common code is also redundant. The common code only deals with netlink, remove any index concern. Signed-off-by: David Marchand <[email protected]> --- drivers/common/mlx5/linux/mlx5_nl.c | 17 ++--------------- drivers/common/mlx5/linux/mlx5_nl.h | 4 ++-- drivers/net/mlx5/linux/mlx5_os.c | 9 ++++----- 3 files changed, 8 insertions(+), 22 deletions(-) diff --git a/drivers/common/mlx5/linux/mlx5_nl.c b/drivers/common/mlx5/linux/mlx5_nl.c index 85736738ac..ceb504f84d 100644 --- a/drivers/common/mlx5/linux/mlx5_nl.c +++ b/drivers/common/mlx5/linux/mlx5_nl.c @@ -719,8 +719,6 @@ mlx5_nl_vf_mac_addr_modify(int nlsk_fd, unsigned int iface_idx, * Net device interface index. * @param mac * MAC address to register. - * @param index - * MAC address index. * * @return * 0 on success, a negative errno value otherwise and rte_errno is set. @@ -728,16 +726,11 @@ mlx5_nl_vf_mac_addr_modify(int nlsk_fd, unsigned int iface_idx, RTE_EXPORT_INTERNAL_SYMBOL(mlx5_nl_mac_addr_add) int mlx5_nl_mac_addr_add(int nlsk_fd, unsigned int iface_idx, - struct rte_ether_addr *mac, uint32_t index) + struct rte_ether_addr *mac) { int ret; ret = mlx5_nl_mac_addr_modify(nlsk_fd, iface_idx, mac, 1); - if (!ret) { - MLX5_ASSERT(index < MLX5_MAX_MAC_ADDRESSES); - if (index >= MLX5_MAX_MAC_ADDRESSES) - return -EINVAL; - } if (ret == -EEXIST) return 0; return ret; @@ -752,8 +745,6 @@ mlx5_nl_mac_addr_add(int nlsk_fd, unsigned int iface_idx, * Net device interface index. * @param mac * MAC address to remove. - * @param index - * MAC address index. * * @return * 0 on success, a negative errno value otherwise and rte_errno is set. @@ -761,12 +752,8 @@ mlx5_nl_mac_addr_add(int nlsk_fd, unsigned int iface_idx, RTE_EXPORT_INTERNAL_SYMBOL(mlx5_nl_mac_addr_remove) int mlx5_nl_mac_addr_remove(int nlsk_fd, unsigned int iface_idx, - struct rte_ether_addr *mac, uint32_t index) + struct rte_ether_addr *mac) { - MLX5_ASSERT(index < MLX5_MAX_MAC_ADDRESSES); - if (index >= MLX5_MAX_MAC_ADDRESSES) - return -EINVAL; - return mlx5_nl_mac_addr_modify(nlsk_fd, iface_idx, mac, 0); } diff --git a/drivers/common/mlx5/linux/mlx5_nl.h b/drivers/common/mlx5/linux/mlx5_nl.h index 256ed7e2b7..500198b654 100644 --- a/drivers/common/mlx5/linux/mlx5_nl.h +++ b/drivers/common/mlx5/linux/mlx5_nl.h @@ -57,10 +57,10 @@ __rte_internal int mlx5_nl_init(int protocol, int groups); __rte_internal int mlx5_nl_mac_addr_add(int nlsk_fd, unsigned int iface_idx, - struct rte_ether_addr *mac, uint32_t index); + struct rte_ether_addr *mac); __rte_internal int mlx5_nl_mac_addr_remove(int nlsk_fd, unsigned int iface_idx, - struct rte_ether_addr *mac, uint32_t index); + struct rte_ether_addr *mac); __rte_internal void mlx5_nl_mac_addr_sync(int nlsk_fd, unsigned int iface_idx, struct rte_ether_addr *mac_addrs, int n); diff --git a/drivers/net/mlx5/linux/mlx5_os.c b/drivers/net/mlx5/linux/mlx5_os.c index 9fd366b10a..1b241ba9d2 100644 --- a/drivers/net/mlx5/linux/mlx5_os.c +++ b/drivers/net/mlx5/linux/mlx5_os.c @@ -3382,9 +3382,8 @@ mlx5_os_mac_addr_remove(struct rte_eth_dev *dev, uint32_t index) if (vf) mlx5_nl_mac_addr_remove(priv->nl_socket_route, mlx5_ifindex(dev), - &dev->data->mac_addrs[index], index); - if (index < MLX5_MAX_MAC_ADDRESSES) - BITFIELD_RESET(priv->mac_own, index); + &dev->data->mac_addrs[index]); + BITFIELD_RESET(priv->mac_own, index); } /** @@ -3411,7 +3410,7 @@ mlx5_os_mac_addr_add(struct rte_eth_dev *dev, struct rte_ether_addr *mac, if (vf) ret = mlx5_nl_mac_addr_add(priv->nl_socket_route, mlx5_ifindex(dev), - mac, index); + mac); if (!ret) BITFIELD_SET(priv->mac_own, index); @@ -3502,7 +3501,7 @@ mlx5_os_mac_addr_flush(struct rte_eth_dev *dev) if (vf) mlx5_nl_mac_addr_remove(priv->nl_socket_route, mlx5_ifindex(dev), - &dev->data->mac_addrs[i], i); + &dev->data->mac_addrs[i]); BITFIELD_RESET(priv->mac_own, i); } } -- 2.54.0

