summaryrefslogtreecommitdiffstats
path: root/include/net/dsa.h
diff options
context:
space:
mode:
authorVladimir Oltean <vladimir.oltean@nxp.com>2022-01-05 23:11:50 +0100
committerDavid S. Miller <davem@davemloft.net>2022-01-06 13:16:21 +0100
commit1b26d364e4e9bd6540a8e7bcaf50e7f35041feb5 (patch)
tree2139f98e543630040123b74a001db02449d3cfc6 /include/net/dsa.h
parentnet: dsa: don't enumerate dsa_switch and dsa_port bit fields using commas (diff)
downloadlinux-1b26d364e4e9bd6540a8e7bcaf50e7f35041feb5.tar.xz
linux-1b26d364e4e9bd6540a8e7bcaf50e7f35041feb5.zip
net: dsa: warn about dsa_port and dsa_switch bit fields being non atomic
As discussed during review here: https://patchwork.kernel.org/project/netdevbpf/patch/20220105132141.2648876-3-vladimir.oltean@nxp.com/ we should inform developers about pitfalls of concurrent access to the boolean properties of dsa_switch and dsa_port, now that they've been converted to bit fields. No other measure than a comment needs to be taken, since the code paths that update these bit fields are not concurrent with each other. Suggested-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to '')
-rw-r--r--include/net/dsa.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/include/net/dsa.h b/include/net/dsa.h
index 63c7f553f938..57b3e4e7413b 100644
--- a/include/net/dsa.h
+++ b/include/net/dsa.h
@@ -265,6 +265,10 @@ struct dsa_port {
u8 stp_state;
+ /* Warning: the following bit fields are not atomic, and updating them
+ * can only be done from code paths where concurrency is not possible
+ * (probe time or under rtnl_lock).
+ */
u8 vlan_filtering:1;
/* Managed by DSA on user ports and by drivers on CPU and DSA ports */
@@ -333,6 +337,10 @@ struct dsa_switch {
struct dsa_switch_tree *dst;
unsigned int index;
+ /* Warning: the following bit fields are not atomic, and updating them
+ * can only be done from code paths where concurrency is not possible
+ * (probe time or under rtnl_lock).
+ */
u32 setup:1;
/* Disallow bridge core from requesting different VLAN awareness