]> git.itanic.dy.fi Git - linux-stable/commitdiff
net: phy: mscc: remove unnecessary phydev locking
authorDavid Epping <david.epping@missinglinkelectronics.com>
Tue, 23 May 2023 15:31:07 +0000 (17:31 +0200)
committerJakub Kicinski <kuba@kernel.org>
Thu, 25 May 2023 05:14:10 +0000 (22:14 -0700)
Holding the struct phy_device (phydev) lock is unnecessary when
accessing phydev->interface in the PHY driver .config_init method,
which is the only place that vsc85xx_rgmii_set_skews() is called from.

The phy_modify_paged() function implements required MDIO bus level
locking, which can not be achieved by a phydev lock.

Signed-off-by: David Epping <david.epping@missinglinkelectronics.com>
Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/phy/mscc/mscc_main.c

index 29fc27a16805de9e06570dc05306d4fba68a92ed..0c39b3ecb1f2a19027aebfd4069242b28d36f852 100644 (file)
@@ -528,8 +528,6 @@ static int vsc85xx_rgmii_set_skews(struct phy_device *phydev, u32 rgmii_cntl,
        u16 reg_val = 0;
        int rc;
 
-       mutex_lock(&phydev->lock);
-
        if (phydev->interface == PHY_INTERFACE_MODE_RGMII_RXID ||
            phydev->interface == PHY_INTERFACE_MODE_RGMII_ID)
                reg_val |= RGMII_CLK_DELAY_2_0_NS << rgmii_rx_delay_pos;
@@ -542,8 +540,6 @@ static int vsc85xx_rgmii_set_skews(struct phy_device *phydev, u32 rgmii_cntl,
                              rgmii_rx_delay_mask | rgmii_tx_delay_mask,
                              reg_val);
 
-       mutex_unlock(&phydev->lock);
-
        return rc;
 }