On Fri, Jul 14, 2023 at 09:09:14AM +0300, Alexandru Ardelean wrote: > On Thu, Jul 13, 2023 at 11:35 PM Andrew Lunn <andrew@xxxxxxx> wrote: > > > > > +set_reg: > > > + mutex_lock(&phydev->lock); > > > + rc = phy_modify_paged(phydev, MSCC_PHY_PAGE_EXTENDED_GPIO, > > > + VSC8531_CLKOUT_CNTL, mask, set); > > > + mutex_unlock(&phydev->lock); > > > > What is this mutex protecting? > > This was inspired by vsc85xx_edge_rate_cntl_set(). > Which has the same format. phy_modify_paged() locks the MDIO bus while it swaps the page, so nothing else can use it. That also protects the read/modify/write. Nothing is modifying phydev, so the lock is not needed for that either. > I'll re-test with this lock removed. > I may be misremembering (or maybe I did something silly at some > point), but there was a weird stack-trace warning before adding this > lock there. > This was with a 5.10.116 kernel version. This patch is for net-next, please test there. When testing for locking issues, and when doing development in general, it is a good idea to turn on CONFIG_PROVE_LOCKING and CONFIG_DEBUG_ATOMIC_SLEEP. Andrew