On Tue, 31 Mar 2020 07:31:48 +0000 Slava Ovsiienko <viachesl...@mellanox.com> wrote:
> Hi, Stephen > > Thank you for the fix. > > The exposed API to set MAC addresses: > - mlx5_mac_addr_set (invoked by rte_mac_addr_set ()) > - mlx5_set_mc_addr_list (invoked by rte_eth_dev_set_mc_addr_list()) > > Both routines call mlx5_internal_mac_addr_add(), it in its turn calls > mlx5_nl_mac_addr_add() (that is subject of the patch). > > mlx5_nl_mac_addr_add is internal function, not exposed external API, > the wrong parameter means the critical internal bug, so assert looks to be > relevant here. > I would not remove MLX5_ASSERT at all but fix just it. > Adding the parameter check and return an error is nice. > What do you think? > > With best regards, Slava The real root cause is that sizeof(mac_own) is the wrong thing to do. The error handling is up to you. Since ASSERT's are compiled out they are never tested and are actually making code less safe.