diff options
author | Antoine Tenart <antoine.tenart@bootlin.com> | 2020-06-25 18:42:05 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2020-06-26 02:22:11 +0300 |
commit | b16a213b4d68022011ddaabd583c855d7e5ec5b2 (patch) | |
tree | b24a9c51496b09b3507830893e52a277c2743418 /drivers/net/phy/mscc/mscc_main.c | |
parent | 853bede848733dee1ce41ecced775d426fe245fa (diff) | |
download | linux-b16a213b4d68022011ddaabd583c855d7e5ec5b2.tar.xz |
net: phy: mscc: fix a possible double unlock
On vsc8584_ptp_init failure we jump to the 'err' label, which unlocks
the MDIO bus lock. But vsc8584_ptp_init isn't called with the MDIO bus
lock taken, which could result in a double unlock. Fix this.
Fixes: ab2bf9339357 ("net: phy: mscc: 1588 block initialization")
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Antoine Tenart <antoine.tenart@bootlin.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/phy/mscc/mscc_main.c')
-rw-r--r-- | drivers/net/phy/mscc/mscc_main.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/phy/mscc/mscc_main.c b/drivers/net/phy/mscc/mscc_main.c index 2a7082983c09..cb4e15d6e2db 100644 --- a/drivers/net/phy/mscc/mscc_main.c +++ b/drivers/net/phy/mscc/mscc_main.c @@ -1436,7 +1436,7 @@ static int vsc8584_config_init(struct phy_device *phydev) ret = vsc8584_ptp_init(phydev); if (ret) - goto err; + return ret; phy_write(phydev, MSCC_EXT_PAGE_ACCESS, MSCC_PHY_PAGE_STANDARD); |