Re: [PATCH 13/13] net: dsa: lan9303: lan9303_port_mdb_del remove port 0

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 07/20/2017 06:57 AM, Egil Hjelmeland wrote:
> Workaround for dsa_switch_mdb_add adding CPU port to group,
> but forgetting to remove it:
> 
> Remove port 0 if only port 0 is only port left.
> 
> Signed-off-by: Egil Hjelmeland <egil.hjelmeland@xxxxxxxxxxx>
> ---
>  drivers/net/dsa/lan9303-core.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/drivers/net/dsa/lan9303-core.c b/drivers/net/dsa/lan9303-core.c
> index 54646eb38185..61c915eed649 100644
> --- a/drivers/net/dsa/lan9303-core.c
> +++ b/drivers/net/dsa/lan9303-core.c
> @@ -1424,6 +1424,17 @@ static int lan9303_port_mdb_del(
>  	if (mdb->vid)
>  		return -EOPNOTSUPP;
>  	lan9303_alr_del_port(chip, mdb->addr, port);
> +
> +	{

No need for curly braces here.

> +		/* Workaround for dsa_switch_mdb_add adding CPU port to
> +		 * group, but forgetting to remove it. Remove port 0
> +		 * if only port left

Should not we move this logic one layer above into DSA then such that
insertions and removals are strictly symmetrical in which and how many
ports are targeted?

> +		 **/
> +		struct lan9303_alr_cache_entry *entr =
> +			lan9303_alr_cache_find_mac(chip, mdb->addr);
> +		if (entr && (entr->port_map == BIT(0)))
> +			lan9303_alr_del_port(chip, mdb->addr, 0);
> +	}
>  	return 0;
>  }
>  
> 


-- 
Florian
--
To unsubscribe from this list: send the line "unsubscribe linux-doc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux