On Mon, Nov 15, 2021 at 07:28:14PM +0100, Hauke Mehrtens wrote:
On 11/15/21 5:56 PM, Greg Kroah-Hartman wrote:
From: Vladimir Oltean vladimir.oltean@nxp.com
[ 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@nxp.com Reviewed-by: Florian Fainelli f.fainelli@gmail.com Acked-by: Hauke Mehrtens hauke@hauke-m.de Signed-off-by: David S. Miller davem@davemloft.net Signed-off-by: Sasha Levin sashal@kernel.org
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@nxp.com 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().
This is correct, this patch does not need to be backported, and unless it is needed for purposes other than fixing a bug, it should be dropped.