diff options
author | Vladimir Oltean <vladimir.oltean@nxp.com> | 2021-10-22 21:43:06 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2021-10-24 13:47:44 +0100 |
commit | f2c4bdf62d765152c19d6f5e8f9b201535ffec87 (patch) | |
tree | 729767e87446d15426e7adc50ae20d0f7e4d780c /include/soc/mscc | |
parent | 1681ae1691ef418c3fd5d3bef48c4e2f3f98791f (diff) | |
download | linux-stable-f2c4bdf62d765152c19d6f5e8f9b201535ffec87.tar.gz linux-stable-f2c4bdf62d765152c19d6f5e8f9b201535ffec87.tar.bz2 linux-stable-f2c4bdf62d765152c19d6f5e8f9b201535ffec87.zip |
net: mscc: ocelot: serialize access to the MAC table
DSA would like to remove the rtnl_lock from its
SWITCHDEV_FDB_{ADD,DEL}_TO_DEVICE handlers, and the felix driver uses
the same MAC table functions as ocelot.
This means that the MAC table functions will no longer be implicitly
serialized with respect to each other by the rtnl_mutex, we need to add
a dedicated lock in ocelot for the non-atomic operations of selecting a
MAC table row, reading/writing what we want and polling for completion.
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/soc/mscc')
-rw-r--r-- | include/soc/mscc/ocelot.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/soc/mscc/ocelot.h b/include/soc/mscc/ocelot.h index 9b872da0c246..fef3a36b0210 100644 --- a/include/soc/mscc/ocelot.h +++ b/include/soc/mscc/ocelot.h @@ -675,6 +675,9 @@ struct ocelot { struct delayed_work stats_work; struct workqueue_struct *stats_queue; + /* Lock for serializing access to the MAC table */ + struct mutex mact_lock; + struct workqueue_struct *owq; u8 ptp:1; |