On Tue, Mar 02, 2021 at 05:05:00PM +0100, Linus Walleij wrote:
On Tue, Mar 2, 2021 at 4:58 AM DENG Qingfang [off-list ref] wrote:
quoted
On Mon, Mar 1, 2021 at 9:48 PM Linus Walleij [off-list ref] wrote:
quoted
With my minor changes:
Tested-by: Linus Walleij <redacted>
How about using a mutex lock in port_bridge_{join,leave} ?
In my opinion all functions that access multiple registers should be
synchronized.
That's one way, in some cases the framework (DSA) serialize
the accesses so I don't know if that already happens on a
higher level? Since it is accessed over a slow bus we should go
for mutex in that case indeed.
DSA does not serialize this. The .port_bridge_join and
.port_bridge_leave calls are initiated from the NETDEV_CHANGEUPPER net
device event, which is called under rtnl_mutex (see call_netdevice_notifiers).
This is pretty fundamental and I don't think it will ever change.
However, if you still want to add an extra layer of locking (with code
paths that for some reason are not under the rtnl_mutex), then go ahead,
I suppose. It will be challenging to make sure they do something that
isn't snake oil, though.