[dpdk-stable] [PATCH v3] common/mlx5: fix storing the synched MAC to internal table

Slava Ovsiienko viacheslavo at nvidia.com
Wed Feb 3 09:04:16 CET 2021


Hi,

I'm sorry, but quota character in "Fixes" tags is still wrong, causing the checking script errors.
It should be " (0x22 ASCII), not ' (0x27 ASCII).

Beside this:

Acked-by: Viacheslav Ovsiienko <viacheslavo at nvidia.com>

> -----Original Message-----
> From: Dey, Souvik <sodey at rbbn.com>
> Sent: Tuesday, February 2, 2021 19:49
> To: Raslan Darawsheh <rasland at nvidia.com>; Slava Ovsiienko
> <viacheslavo at nvidia.com>; Matan Azrad <matan at nvidia.com>; Shahaf
> Shuler <shahafs at nvidia.com>
> Cc: dev at dpdk.org; stable at dpdk.org; Souvik Dey <sodey at rbbn.com>
> Subject: [PATCH v3] common/mlx5: fix storing the synched MAC to internal
> table
> 
> From: Souvik Dey <sodey at rbbn.com>
> 
> As the internal MAC table is divided into Unicast and Multicast address
> sections, we should check the type of synched MAC address before storing it
> to the internal table. Currently the check is not done, and the synched MAC of
> 33:33:00:00:00:01 gets stored in the unicast section (mostly index 1) causing
> all subsequent mlx5_set_mc_addr_list() to fail with error -EADDRINUSE, as the
> mac_list contains the MAC 33:33:00:00:00:01. This denies adding of any new
> multicast address to the internal list and also fails to add the MAC address to
> the device in case of SR-IOV VF.
> 
> Fixes: f22442cb5d42 ('net/mlx5: reduce Netlink commands dependencies')
> Fixes: ccdcba53a3f4 ('net/mlx5: use Netlink to add/remove MAC addresses')
> Cc: stable at dpdk.org
> 
> Signed-off-by: Souvik Dey <sodey at rbbn.com>
> ---
> v2:
> * net/ -> common/
> * space after mlx5:
> * synched -> synched
> * section -> sections
> * rewording which causes -> causing
> * typo: case (to remove)
> * added Fixes for LTS ML
> ---
> v3:
> * Changed the "" in Fixes tags to ''.
> ---
>  drivers/common/mlx5/linux/mlx5_nl.c | 20 +++++++++++++++-----
>  1 file changed, 15 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/common/mlx5/linux/mlx5_nl.c
> b/drivers/common/mlx5/linux/mlx5_nl.c
> index 40d8620..ef7a521 100644
> --- a/drivers/common/mlx5/linux/mlx5_nl.c
> +++ b/drivers/common/mlx5/linux/mlx5_nl.c
> @@ -758,11 +758,21 @@ mlx5_nl_mac_addr_sync(int nlsk_fd, unsigned int
> iface_idx,
>  				break;
>  		if (j != n)
>  			continue;
> -		/* Find the first entry available. */
> -		for (j = 0; j != n; ++j) {
> -			if (rte_is_zero_ether_addr(&mac_addrs[j])) {
> -				mac_addrs[j] = macs[i];
> -				break;
> +		if (rte_is_multicast_ether_addr(&macs[i])) {
> +			/* Find the first entry available. */
> +			for (j = MLX5_MAX_UC_MAC_ADDRESSES; j != n; ++j)
> {
> +				if (rte_is_zero_ether_addr(&mac_addrs[j])) {
> +					mac_addrs[j] = macs[i];
> +					break;
> +				}
> +			}
> +		} else {
> +			/* Find the first entry available. */
> +			for (j = 0; j != MLX5_MAX_UC_MAC_ADDRESSES; ++j)
> {
> +				if (rte_is_zero_ether_addr(&mac_addrs[j])) {
> +					mac_addrs[j] = macs[i];
> +					break;
> +				}
>  			}
>  		}
>  	}
> --
> 2.9.3.windows.1
> 
> 
> Notice: This e-mail together with any attachments may contain information of
> Ribbon Communications Inc. and its Affiliates that is confidential and/or
> proprietary for the sole use of the intended recipient. Any review, disclosure,
> reliance or distribution by others or forwarding without express permission is
> strictly prohibited. If you are not the intended recipient, please notify the
> sender immediately and then delete all copies, including any attachments.


More information about the stable mailing list