Commit 1b26d364 authored by Vladimir Oltean's avatar Vladimir Oltean Committed by David S. Miller

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: default avatarFlorian Fainelli <f.fainelli@gmail.com>
Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 63cfc657
...@@ -265,6 +265,10 @@ struct dsa_port { ...@@ -265,6 +265,10 @@ struct dsa_port {
u8 stp_state; 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; u8 vlan_filtering:1;
/* Managed by DSA on user ports and by drivers on CPU and DSA ports */ /* Managed by DSA on user ports and by drivers on CPU and DSA ports */
...@@ -333,6 +337,10 @@ struct dsa_switch { ...@@ -333,6 +337,10 @@ struct dsa_switch {
struct dsa_switch_tree *dst; struct dsa_switch_tree *dst;
unsigned int index; 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; u32 setup:1;
/* Disallow bridge core from requesting different VLAN awareness /* Disallow bridge core from requesting different VLAN awareness
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment