Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1694835 > unrolled thread

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

Started byEgil Hjelmeland <egil.hjelmeland@zenitel.com>
First post2017-07-24 17:50 +0200
Last post2017-07-25 10:00 +0200
Articles 3 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH 13/13] net: dsa: lan9303: lan9303_port_mdb_del remove port 0 Egil Hjelmeland <egil.hjelmeland@zenitel.com> - 2017-07-24 17:50 +0200
    Re: [PATCH 13/13] net: dsa: lan9303: lan9303_port_mdb_del remove port  0 Florian Fainelli <f.fainelli@gmail.com> - 2017-07-24 19:00 +0200
      Re: [PATCH 13/13] net: dsa: lan9303: lan9303_port_mdb_del remove port  0 Egil Hjelmeland <egil.hjelmeland@zenitel.com> - 2017-07-25 10:00 +0200

#1694835 — [PATCH 13/13] net: dsa: lan9303: lan9303_port_mdb_del remove port 0

FromEgil Hjelmeland <egil.hjelmeland@zenitel.com>
Date2017-07-24 17:50 +0200
Subject[PATCH 13/13] net: dsa: lan9303: lan9303_port_mdb_del remove port 0
Message-ID<u6NMl-6Pn-15@gated-at.bofh.it>
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@zenitel.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);
+
+	{
+		/* Workaround for dsa_switch_mdb_add adding CPU port to
+		 * group, but forgetting to remove it. Remove port 0
+		 * if only port left
+		 **/
+		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;
 }
 
-- 
2.11.0


DISCLAIMER:
This e-mail may contain confidential and privileged material for the sole use of the intended recipient. Any review, use, distribution or disclosure by others is strictly prohibited. If you are not the intended recipient (or authorized to receive for the recipient), please contact the sender by reply e-mail and delete all copies of this message.

[toc] | [next] | [standalone]


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

FromFlorian Fainelli <f.fainelli@gmail.com>
Date2017-07-24 19:00 +0200
SubjectRe: [PATCH 13/13] net: dsa: lan9303: lan9303_port_mdb_del remove port 0
Message-ID<u6OS5-7yA-13@gated-at.bofh.it>
In reply to#1694835
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@zenitel.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

[toc] | [prev] | [next] | [standalone]


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

FromEgil Hjelmeland <egil.hjelmeland@zenitel.com>
Date2017-07-25 10:00 +0200
SubjectRe: [PATCH 13/13] net: dsa: lan9303: lan9303_port_mdb_del remove port 0
Message-ID<u72V4-8s6-15@gated-at.bofh.it>
In reply to#1694892
On 24. juli 2017 18:57, Florian Fainelli wrote:
> 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:
>>
> 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?
> 

Agree. I included the patch more as a bug report. I will remove it in
patch v2. I don't really feel competent to fix the issue in DSA. It is
probably better if you DSA people look at it. I do suspect DSA need
to do more bookkeeping?

Egil

DISCLAIMER:
This e-mail may contain confidential and privileged material for the sole use of the intended recipient. Any review, use, distribution or disclosure by others is strictly prohibited. If you are not the intended recipient (or authorized to receive for the recipient), please contact the sender by reply e-mail and delete all copies of this message.

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web