On Tue, Mar 2, 2021 at 5:11 PM Vladimir Oltean <olte...@gmail.com> wrote: > On Tue, Mar 02, 2021 at 05:05:00PM +0100, Linus Walleij wrote: > > On Tue, Mar 2, 2021 at 4:58 AM DENG Qingfang <dqf...@gmail.com> wrote: > > > On Mon, Mar 1, 2021 at 9:48 PM Linus Walleij <linus.wall...@linaro.org> > > > wrote: > > > > With my minor changes: > > > > Tested-by: Linus Walleij <linus.wall...@linaro.org> > > > > > > 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.
Nah, just didn't know if was already in place. I suggest Qingfang go with a driver-local mutex (it may already be needed in more places). Yours, Linus Walleij