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 v3 08/12] net: dsa: rzn1-a5psw: add FDB support
Date: Wed, 4 May 2022 19:24:57 +0300 [thread overview]
Message-ID: <20220504162457.eeggo4xenvxddpkr@skbuf> (raw)
In-Reply-To: <20220504093000.132579-9-clement.leger@bootlin.com>
On Wed, May 04, 2022 at 11:29:56AM +0200, Clément Léger wrote:
> +static int a5psw_port_fdb_del(struct dsa_switch *ds, int port,
> + const unsigned char *addr, u16 vid,
> + struct dsa_db db)
> +{
> + struct a5psw *a5psw = ds->priv;
> + union lk_data lk_data = {0};
> + bool clear = false;
> + int ret = 0;
> + u16 entry;
> + u32 reg;
> +
> + ether_addr_copy(lk_data.entry.mac, addr);
> +
> + spin_lock(&a5psw->lk_lock);
> +
> + ret = a5psw_lk_execute_lookup(a5psw, &lk_data, &entry);
> + if (ret) {
> + dev_err(a5psw->dev, "Failed to lookup mac address\n");
> + goto lk_unlock;
> + }
> +
> + lk_data.hi = a5psw_reg_readl(a5psw, A5PSW_LK_DATA_HI);
> + if (!lk_data.entry.valid) {
> + dev_err(a5psw->dev, "Tried to remove non-existing entry\n");
> + ret = -ENOENT;
> + goto lk_unlock;
These error messages can happen under quite normal use with your hardware.
For example:
ip link add br0 type bridge && ip link set br0 master br0
bridge fdb add dev swp0 00:01:02:03:04:05 vid 1 master static
bridge fdb add dev swp0 00:01:02:03:04:05 vid 2 master static
bridge fdb del dev swp0 00:01:02:03:04:05 vid 2 master static
bridge fdb del dev swp0 00:01:02:03:04:05 vid 1 master static
Because the driver ignores the VID, then as soon as the VID 2 FDB entry
is removed, the VID 1 FDB entry doesn't exist anymore, either.
The above is a bit artificial. More practically, the bridge installs
local FDB entries (MAC address of bridge device, MAC addresses of ports)
once in the VLAN-unaware database (VID 0), and once per VLAN installed
on br0.
When the MAC address of br0 is different from that of the ports, and it
is changed by the user, you'll get these errors too, since those changes
translate into a deletion of the old local FDB entries (installed as FDB
entries towards the CPU port). Do you want the users to see them and
think something is wrong? I mean, something _is_ wrong (the hardware),
but you have to work with that somehow.
> + }
> +
> + lk_data.entry.port_mask &= ~BIT(port);
> + /* If there is no more port in the mask, clear the entry */
> + if (lk_data.entry.port_mask == 0)
> + clear = true;
> +
> + a5psw_reg_writel(a5psw, A5PSW_LK_DATA_HI, lk_data.hi);
> +
> + reg = entry;
> + if (clear)
> + reg |= A5PSW_LK_ADDR_CTRL_CLEAR;
> + else
> + reg |= A5PSW_LK_ADDR_CTRL_WRITE;
> +
> + ret = a5psw_lk_execute_ctrl(a5psw, ®);
> + if (ret)
> + goto lk_unlock;
> +
> + /* Decrement LEARNCOUNT */
> + if (clear) {
> + reg = A5PSW_LK_LEARNCOUNT_MODE_DEC;
> + a5psw_reg_writel(a5psw, A5PSW_LK_LEARNCOUNT, reg);
> + }
> +
> +lk_unlock:
> + spin_unlock(&a5psw->lk_lock);
> +
> + return ret;
> +}
next prev parent reply other threads:[~2022-05-04 16:25 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-04 9:29 [PATCH net-next v3 00/12] add support for Renesas RZ/N1 ethernet subsystem devices Clément Léger
2022-05-04 9:29 ` [PATCH net-next v3 01/12] net: dsa: add support for ethtool get_rmon_stats() Clément Léger
2022-05-04 15:50 ` Vladimir Oltean
2022-05-04 9:29 ` [PATCH net-next v3 02/12] net: dsa: add Renesas RZ/N1 switch tag driver Clément Léger
2022-05-04 16:00 ` Vladimir Oltean
2022-05-05 13:48 ` Clément Léger
2022-05-04 9:29 ` [PATCH net-next v3 03/12] dt-bindings: net: pcs: add bindings for Renesas RZ/N1 MII converter Clément Léger
2022-05-04 9:29 ` [PATCH net-next v3 04/12] net: pcs: add Renesas MII converter driver Clément Léger
2022-05-05 7:16 ` Geert Uytterhoeven
2022-05-05 12:32 ` Clément Léger
2022-05-05 13:00 ` Geert Uytterhoeven
2022-05-05 13:03 ` Clément Léger
2022-05-04 9:29 ` [PATCH net-next v3 05/12] dt-bindings: net: dsa: add bindings for Renesas RZ/N1 Advanced 5 port switch Clément Léger
2022-05-04 9:29 ` [PATCH net-next v3 06/12] net: dsa: rzn1-a5psw: add Renesas RZ/N1 advanced 5 port switch driver Clément Léger
2022-05-04 16:14 ` Vladimir Oltean
2022-05-05 12:59 ` Clément Léger
2022-05-04 9:29 ` [PATCH net-next v3 07/12] net: dsa: rzn1-a5psw: add statistics support Clément Léger
2022-05-04 9:29 ` [PATCH net-next v3 08/12] net: dsa: rzn1-a5psw: add FDB support Clément Léger
2022-05-04 16:24 ` Vladimir Oltean [this message]
2022-05-05 13:44 ` Clément Léger
2022-05-05 16:30 ` Vladimir Oltean
2022-05-04 9:29 ` [PATCH net-next v3 09/12] ARM: dts: r9a06g032: describe MII converter Clément Léger
2022-05-04 9:29 ` [PATCH net-next v3 10/12] ARM: dts: r9a06g032: describe GMAC2 Clément Léger
2022-05-04 9:29 ` [PATCH net-next v3 11/12] ARM: dts: r9a06g032: describe switch Clément Léger
2022-05-04 9:30 ` [PATCH net-next v3 12/12] MAINTAINERS: add Renesas RZ/N1 switch related driver entry Clément Léger
2022-05-05 7:29 ` [PATCH net-next v3 00/12] add support for Renesas RZ/N1 ethernet subsystem devices Geert Uytterhoeven
2022-05-05 9:48 ` 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=20220504162457.eeggo4xenvxddpkr@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