Thread (13 messages) flat view 13 messages, 3 authors, 2021-10-23

Re: [PATCH v4 net-next 5/9] net: dsa: lantiq_gswip: serialize access to the PCE table

From: Hauke Mehrtens <hauke@hauke-m.de>
Date: 2021-10-23 15:08:03

On 10/22/21 8:43 PM, Vladimir Oltean wrote:
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.
The switch has multiple tables which can be accessed with indirect 
addressing over the PCE registers.
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.
The driver also uses the gswip_pce_load_microcode() function to load a 
static configuration for the packet classification engine into a table 
using the same registers. It is currently not protected, but only called 
by the DSA setup callback.
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
---
v3->v4: call mutex_init

  drivers/net/dsa/lantiq_gswip.c | 28 +++++++++++++++++++++++-----
  1 file changed, 23 insertions(+), 5 deletions(-)
Acked-by: Hauke Mehrtens <hauke@hauke-m.de>

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help