Re: [PATCH 5.14 309/849] net: dsa: lantiq_gswip: serialize access to the PCE table

From: Hauke Mehrtens
Date: Mon Nov 15 2021 - 19:50:04 EST


On 11/15/21 5:56 PM, Greg Kroah-Hartman wrote:
From: Vladimir Oltean <vladimir.oltean@xxxxxxx>

[ Upstream commit 49753a75b9a32de4c0393bb8d1e51ea223fda8e4 ]

Looking at the code, the GSWIP switch appears to hold bridging service
structures (VLANs, FDBs, forwarding rules) in PCE table entries.
Hardware access to the PCE table is non-atomic, and is comprised of
several register reads and writes.

These accesses are currently serialized by the rtnl_lock, but DSA is
changing its driver API and that lock will no longer be held when
calling ->port_fdb_add() and ->port_fdb_del().

So this driver needs to serialize the access to the PCE table using its
own locking scheme. This patch adds that.

Signed-off-by: Vladimir Oltean <vladimir.oltean@xxxxxxx>
Reviewed-by: Florian Fainelli <f.fainelli@xxxxxxxxx>
Acked-by: Hauke Mehrtens <hauke@xxxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
---
drivers/net/dsa/lantiq_gswip.c | 28 +++++++++++++++++++++++-----
1 file changed, 23 insertions(+), 5 deletions(-)

Hi Greg and Vladimir,

I understood this is only needed when we apply the complete patch series from Vladimir. This would only be needed when we also apply this patch:
> commit 5cdfde49a07f38663c277ddf2e56345ea1706fc2
> Author: Vladimir Oltean <vladimir.oltean@xxxxxxx>
> Date: Fri Oct 22 21:43:10 2021 +0300
>
> net: dsa: drop rtnl_lock from dsa_slave_switchdev_event_work
This was added in v5.16-rc1.

Without this patch the sections are protected by rtnl_lock().


Hauke