> > > > > > What is the register lock protecting against, exactly? > > > > A lot of the register operations work by: > > > > * Select port, priority, vlan or counter > > * Configure it > > > > These sequences have to be atomic. That's what I wanted to ensure. > > > > So, let me rephrase. Is there any code path that is broken, even if only > theoretically, if you remove the reg_lock? Maybe, at the moment, RTNL is keeping things atomic. But that is because there is no HWMON, or MDIO bus. Those sort of operations don't take the RTNL, and so would be an issue. I've also never audited the network stack to check RTNL really is held at all the network stack entry points to a DSA driver. It would be an interesting excesses to scatter some ASSERT_RTNL() in a DSA driver and see what happens. Andrew