lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <42090826-7498-4d90-f265-a7cf65a9e236@gmail.com>
Date:   Mon, 24 Jul 2017 09:57:26 -0700
From:   Florian Fainelli <f.fainelli@...il.com>
To:     Egil Hjelmeland <egil.hjelmeland@...itel.com>, corbet@....net,
        andrew@...n.ch, vivien.didelot@...oirfairelinux.com,
        davem@...emloft.net, kernel@...gutronix.de,
        linux-doc@...r.kernel.org, linux-kernel@...r.kernel.org,
        netdev@...r.kernel.org
Subject: Re: [PATCH 13/13] net: dsa: lan9303: lan9303_port_mdb_del remove port
 0

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@...itel.com>
> ---
>  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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ