public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
From: Vladimir Oltean <olteanv@gmail.com>
To: Christian Marangi <ansuelsmth@gmail.com>
Cc: Andrew Lunn <andrew@lunn.ch>,
	Florian Fainelli <f.fainelli@gmail.com>,
	"David S. Miller" <davem@davemloft.net>,
	Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
	Atin Bainada <hi@atinb.me>,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [net-next PATCH 3/3] net: dsa: qca8k: limit user ports access to the first CPU port on setup
Date: Fri, 28 Jul 2023 00:16:58 +0300	[thread overview]
Message-ID: <20230727211658.3gkjql5jww44hr4c@skbuf> (raw)
In-Reply-To: <20230724033058.16795-3-ansuelsmth@gmail.com>

On Mon, Jul 24, 2023 at 05:30:58AM +0200, Christian Marangi wrote:
> In preparation for multi-CPU support, set CPU port LOOKUP MEMBER outside
> the port loop and setup the LOOKUP MEMBER mask for user ports only to
> the first CPU port.
> 
> This is to handle flooding condition where every CPU port is set as
> target and prevent packet duplication for unknown frames from user ports.
> 
> Secondary CPU port LOOKUP MEMBER mask will be setup later when
> port_change_master will be implemented.
> 
> Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
> ---

Reviewed-by: Vladimir Oltean <olteanv@gmail.com>

>  drivers/net/dsa/qca/qca8k-8xxx.c | 14 ++++++--------
>  1 file changed, 6 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/net/dsa/qca/qca8k-8xxx.c b/drivers/net/dsa/qca/qca8k-8xxx.c
> index 31552853fdd4..6286a64a2fe3 100644
> --- a/drivers/net/dsa/qca/qca8k-8xxx.c
> +++ b/drivers/net/dsa/qca/qca8k-8xxx.c
> @@ -1850,18 +1850,16 @@ qca8k_setup(struct dsa_switch *ds)
>  	if (ret)
>  		return ret;
>  
> +	/* CPU port gets connected to all user ports of the switch */
> +	ret = qca8k_rmw(priv, QCA8K_PORT_LOOKUP_CTRL(cpu_port),
> +			QCA8K_PORT_LOOKUP_MEMBER, dsa_user_ports(ds));
> +	if (ret)
> +		return ret;
> +
>  	/* Setup connection between CPU port & user ports
>  	 * Configure specific switch configuration for ports
>  	 */
>  	for (i = 0; i < QCA8K_NUM_PORTS; i++) {
> -		/* CPU port gets connected to all user ports of the switch */
> -		if (dsa_is_cpu_port(ds, i)) {
> -			ret = qca8k_rmw(priv, QCA8K_PORT_LOOKUP_CTRL(i),
> -					QCA8K_PORT_LOOKUP_MEMBER, dsa_user_ports(ds));
> -			if (ret)
> -				return ret;
> -		}
> -
>  		/* Individual user ports get connected to CPU port only */
>  		if (dsa_is_user_port(ds, i)) {
>  			ret = qca8k_rmw(priv, QCA8K_PORT_LOOKUP_CTRL(i),

FWIW, the remaining loop can be rewritten (in a separate patch) using
dsa_switch_for_each_user_port(), which is actually an operation of lower
complexity compared to "for" + "dsa_is_user_port".

> -- 
> 2.40.1
> 

  parent reply	other threads:[~2023-07-27 21:17 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-24  3:30 [net-next PATCH 1/3] net: dsa: tag_qca: return early if dev is not found Christian Marangi
2023-07-24  3:30 ` [net-next PATCH 2/3] net: dsa: qca8k: make learning configurable and keep off if standalone Christian Marangi
2023-07-26  8:19   ` Simon Horman
2023-07-26 12:14     ` Vladimir Oltean
2023-07-26 13:15       ` Simon Horman
2023-07-26 12:12   ` Vladimir Oltean
2023-07-27 19:05     ` Christian Marangi
2023-07-26 22:22   ` Florian Fainelli
2023-07-24  3:30 ` [net-next PATCH 3/3] net: dsa: qca8k: limit user ports access to the first CPU port on setup Christian Marangi
2023-07-26  8:19   ` Simon Horman
2023-07-26 13:18   ` Vladimir Oltean
2023-07-27 19:10     ` Christian Marangi
2023-07-27 21:14       ` Vladimir Oltean
2023-07-26 22:21   ` Florian Fainelli
2023-07-27 21:16   ` Vladimir Oltean [this message]
2023-07-26  8:17 ` [net-next PATCH 1/3] net: dsa: tag_qca: return early if dev is not found Simon Horman
2023-07-26 12:06 ` Vladimir Oltean
2023-07-26 22:19 ` Florian Fainelli

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230727211658.3gkjql5jww44hr4c@skbuf \
    --to=olteanv@gmail.com \
    --cc=andrew@lunn.ch \
    --cc=ansuelsmth@gmail.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=f.fainelli@gmail.com \
    --cc=hi@atinb.me \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox