netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Vladimir Oltean <olteanv@gmail.com>
To: "Clément Léger" <clement.leger@bootlin.com>
Cc: "Andrew Lunn" <andrew@lunn.ch>,
	"Vivien Didelot" <vivien.didelot@gmail.com>,
	"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>,
	"Rob Herring" <robh+dt@kernel.org>,
	"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
	"Geert Uytterhoeven" <geert+renesas@glider.be>,
	"Magnus Damm" <magnus.damm@gmail.com>,
	"Heiner Kallweit" <hkallweit1@gmail.com>,
	"Russell King" <linux@armlinux.org.uk>,
	"Thomas Petazzoni" <thomas.petazzoni@bootlin.com>,
	"Herve Codina" <herve.codina@bootlin.com>,
	"Miquèl Raynal" <miquel.raynal@bootlin.com>,
	"Milan Stevanovic" <milan.stevanovic@se.com>,
	"Jimmy Lalande" <jimmy.lalande@se.com>,
	"Pascal Eberhard" <pascal.eberhard@se.com>,
	linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
	linux-renesas-soc@vger.kernel.org, netdev@vger.kernel.org
Subject: Re: [PATCH net-next v5 09/13] net: dsa: rzn1-a5psw: add FDB support
Date: Thu, 19 May 2022 21:12:04 +0300	[thread overview]
Message-ID: <20220519181204.7c6zjn6xqcgvyaup@skbuf> (raw)
In-Reply-To: <20220519153107.696864-10-clement.leger@bootlin.com>

On Thu, May 19, 2022 at 05:31:03PM +0200, Clément Léger wrote:
> +static int a5psw_port_fdb_dump(struct dsa_switch *ds, int port,
> +			       dsa_fdb_dump_cb_t *cb, void *data)
> +{
> +	struct a5psw *a5psw = ds->priv;
> +	union lk_data lk_data;
> +	int i = 0, ret;
> +	u32 reg;
> +
> +	for (i = 0; i < A5PSW_TABLE_ENTRIES; i++) {
> +		reg = A5PSW_LK_ADDR_CTRL_READ | A5PSW_LK_ADDR_CTRL_WAIT | i;
> +		mutex_lock(&a5psw->lk_lock);

It might be more efficient to lock the lookup table only once, outside
the for loop, rather than 8192 times (plus the fact that when you run
plain "bridge fdb show", this gets repeated for each switch user port,
which is a nuisance of its own).

> +
> +		ret = a5psw_lk_execute_ctrl(a5psw, &reg);
> +		if (ret) {
> +			mutex_unlock(&a5psw->lk_lock);
> +			return ret;
> +		}
> +
> +		lk_data.hi = a5psw_reg_readl(a5psw, A5PSW_LK_DATA_HI);
> +		/* If entry is not valid or does not contain the port, skip */
> +		if (!lk_data.entry.valid ||
> +		    !(lk_data.entry.port_mask & BIT(port))) {
> +			mutex_unlock(&a5psw->lk_lock);
> +			continue;
> +		}
> +
> +		lk_data.lo = a5psw_reg_readl(a5psw, A5PSW_LK_DATA_LO);
> +		mutex_unlock(&a5psw->lk_lock);
> +
> +		ret = cb(lk_data.entry.mac, 0, lk_data.entry.is_static, data);
> +		if (ret)
> +			return ret;
> +	}
> +
> +	return 0;
> +}

  reply	other threads:[~2022-05-19 18:12 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-19 15:30 [PATCH net-next v5 00/13] add support for Renesas RZ/N1 ethernet subsystem devices Clément Léger
2022-05-19 15:30 ` [PATCH net-next v5 01/13] net: dsa: allow port_bridge_join() to override extack message Clément Léger
2022-05-19 17:53   ` Vladimir Oltean
2022-05-19 15:30 ` [PATCH net-next v5 02/13] net: dsa: add support for ethtool get_rmon_stats() Clément Léger
2022-05-19 15:30 ` [PATCH net-next v5 03/13] net: dsa: add Renesas RZ/N1 switch tag driver Clément Léger
2022-05-19 15:30 ` [PATCH net-next v5 04/13] dt-bindings: net: pcs: add bindings for Renesas RZ/N1 MII converter Clément Léger
2022-05-20  7:09   ` Geert Uytterhoeven
2022-05-19 15:30 ` [PATCH net-next v5 05/13] net: pcs: add Renesas MII converter driver Clément Léger
2022-05-19 16:25   ` Russell King (Oracle)
2022-05-20  7:52     ` Clément Léger
2022-05-20  8:49       ` Vladimir Oltean
2022-05-20 15:22         ` Clément Léger
2022-05-20 15:44           ` Vladimir Oltean
2022-05-20 15:49             ` Clément Léger
2022-05-20 15:58               ` Vladimir Oltean
2022-05-20 16:22                 ` Clément Léger
2022-05-19 15:31 ` [PATCH net-next v5 06/13] dt-bindings: net: dsa: add bindings for Renesas RZ/N1 Advanced 5 port switch Clément Léger
2022-05-20  7:13   ` Geert Uytterhoeven
2022-05-20  7:57     ` Clément Léger
2022-05-20  8:01       ` Geert Uytterhoeven
2022-05-20  8:16         ` Clément Léger
2022-05-24  2:34   ` Rob Herring
2022-05-19 15:31 ` [PATCH net-next v5 07/13] net: dsa: rzn1-a5psw: add Renesas RZ/N1 advanced 5 port switch driver Clément Léger
2022-05-19 18:08   ` Vladimir Oltean
2022-05-20  7:58     ` Clément Léger
2022-05-19 15:31 ` [PATCH net-next v5 08/13] net: dsa: rzn1-a5psw: add statistics support Clément Léger
2022-05-19 18:24   ` Vladimir Oltean
2022-05-19 15:31 ` [PATCH net-next v5 09/13] net: dsa: rzn1-a5psw: add FDB support Clément Léger
2022-05-19 18:12   ` Vladimir Oltean [this message]
2022-05-19 15:31 ` [PATCH net-next v5 10/13] ARM: dts: r9a06g032: describe MII converter Clément Léger
2022-05-19 15:31 ` [PATCH net-next v5 11/13] ARM: dts: r9a06g032: describe GMAC2 Clément Léger
2022-05-20  7:18   ` Geert Uytterhoeven
2022-05-20  8:13     ` Clément Léger
2022-05-20  8:25       ` Geert Uytterhoeven
2022-05-20  8:31         ` Clément Léger
2022-05-20  8:48           ` Geert Uytterhoeven
2022-05-19 15:31 ` [PATCH net-next v5 12/13] ARM: dts: r9a06g032: describe switch Clément Léger
2022-05-19 18:28   ` Vladimir Oltean
2022-05-20  8:18     ` Clément Léger
2022-05-19 15:31 ` [PATCH net-next v5 13/13] MAINTAINERS: add Renesas RZ/N1 switch related driver entry Clément Léger

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=20220519181204.7c6zjn6xqcgvyaup@skbuf \
    --to=olteanv@gmail.com \
    --cc=andrew@lunn.ch \
    --cc=clement.leger@bootlin.com \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=edumazet@google.com \
    --cc=f.fainelli@gmail.com \
    --cc=geert+renesas@glider.be \
    --cc=herve.codina@bootlin.com \
    --cc=hkallweit1@gmail.com \
    --cc=jimmy.lalande@se.com \
    --cc=krzk+dt@kernel.org \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=magnus.damm@gmail.com \
    --cc=milan.stevanovic@se.com \
    --cc=miquel.raynal@bootlin.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=pascal.eberhard@se.com \
    --cc=robh+dt@kernel.org \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=vivien.didelot@gmail.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;
as well as URLs for NNTP newsgroup(s).