Subject: Re: [PATCH net-next] net: phy: icplus: Call phy_restore_page() when phy_select_page() fails

From: Russell King - ARM Linux admin <[email-masked]>
Date: Wed, 17 Feb 2021 15:33:57 +0000

On Wed, Feb 17, 2021 at 03:06:21PM +0000, Russell King - ARM Linux admin wrote:
> On Wed, Feb 17, 2021 at 05:28:38PM +0300, Dan Carpenter wrote:
> > On Wed, Feb 17, 2021 at 09:17:59AM +0300, Dan Carpenter wrote:
> > > Smatch warns that there is a locking issue in this function:
> > > 
> > > drivers/net/phy/icplus.c:273 ip101a_g_config_intr_pin()
> > > warn: inconsistent returns '&phydev->mdio.bus->mdio_lock'.
> > >   Locked on  : 242
> > >   Unlocked on: 273
> > > 
> > > It turns out that the comments in phy_select_page() say we have to call
> > > phy_restore_page() even if the call to phy_select_page() fails.
> > > 
> > > Fixes: f9bc51e6cce2 ("net: phy: icplus: fix paged register access")
> > 
> > Don't apply this patch.  I have created a new Smatch warning for the
> > phy_select_page() behavior and it catches a couple similar bugs in the
> > same file.  I will send a v2 that fixes those as well.
> 
> Yes, there are three instances of this in the file, all three need
> fixing. Thanks.

I'm wondering whether we need to add __acquires() and __releases()
annotations to some of these functions so that sparse can catch
these cases. Thoughts?

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!