Re: [RFC net-next] net: dsa: rtl8366rb: support bridge offloading

From: Vladimir Oltean
Date: Tue Mar 02 2021 - 16:30:11 EST


On Tue, Mar 02, 2021 at 05:05:00PM +0100, Linus Walleij wrote:
> On Tue, Mar 2, 2021 at 4:58 AM DENG Qingfang <dqfext@xxxxxxxxx> wrote:
> > On Mon, Mar 1, 2021 at 9:48 PM Linus Walleij <linus.walleij@xxxxxxxxxx> wrote:
> > > With my minor changes:
> > > Tested-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
> >
> > 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.