Subject: Re: [PATCH] mlxsw: spectrum_switchdev: remove duplicated check on multicast_enable

From: Ido Schimmel <[email-masked]>
Date: Tue, 24 Apr 2018 15:51:04 +0300

On Tue, Apr 24, 2018 at 12:51:39PM +0100, Colin King wrote:
> From: Colin Ian King <[email-masked]>
> 
> The check on bridge_port->bridge_device->multicast_enable is performed
> twice in two nested if statements. I can't see any reason for this, the
> second check is redundant and can be removed.
> 
> Detected by cppcheck:
> drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c:1722]:
> (warning) Identical inner 'if' condition is always true.
> 
> Signed-off-by: Colin Ian King <[email-masked]>
> ---
>  drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 9 +++------
>  1 file changed, 3 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c
> index c11c9a635866..989ed19e25c9 100644
> --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c
> +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c
> @@ -1719,12 +1719,9 @@ __mlxsw_sp_port_mdb_del(struct mlxsw_sp_port *mlxsw_sp_port,
>  	int err;
>  
>  	if (bridge_port->bridge_device->multicast_enabled) {
> -		if (bridge_port->bridge_device->multicast_enabled) {

This looks like a copy-paste error. I believe the intention was to check
'!bridge_port->mrouter' so that if port is an mrouter port packets
hitting the MDB entry would still be sent to it even after it was
removed from the MDB entry ports list.

I will send a patch later this week after I run it by Nogah who worked
on this part.

Thanks for the patch.

> -			err = mlxsw_sp_port_smid_set(mlxsw_sp_port, mid->mid,
> -						     false);
> -			if (err)
> -				netdev_err(dev, "Unable to remove port from SMID\n");
> -		}
> +		err = mlxsw_sp_port_smid_set(mlxsw_sp_port, mid->mid, false);
> +		if (err)
> +			netdev_err(dev, "Unable to remove port from SMID\n");
>  	}
>  
>  	err = mlxsw_sp_port_remove_from_mid(mlxsw_sp_port, mid);
> -- 
> 2.17.0
>