diff options
author | Kunihiko Hayashi <hayashi.kunihiko@socionext.com> | 2019-05-13 15:41:45 +0900 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-05-13 09:10:39 -0700 |
commit | dffe7d2e04670ff98e4dacf258df30446e2e80d4 (patch) | |
tree | 0bab347f9cd0e060b6c94dd8141760ab0321d3b1 /drivers/net/phy/realtek.c | |
parent | 5afcd14cfc7fed1bcc8abcee2cef82732772bfc2 (diff) | |
download | linux-dffe7d2e04670ff98e4dacf258df30446e2e80d4.tar.bz2 |
net: phy: realtek: Replace phy functions with non-locked version in rtl8211e_config_init()
After calling phy_select_page() and until calling phy_restore_page(),
the mutex 'mdio_lock' is already locked, so the driver should use
non-locked version of phy functions. Or there will be a deadlock with
'mdio_lock'.
This replaces phy functions called from rtl8211e_config_init() to avoid
the deadlock issue.
Fixes: f81dadbcf7fd ("net: phy: realtek: Add rtl8211e rx/tx delays config")
Signed-off-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/phy/realtek.c')
-rw-r--r-- | drivers/net/phy/realtek.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/net/phy/realtek.c b/drivers/net/phy/realtek.c index 4988ccea684a..a669945eb829 100644 --- a/drivers/net/phy/realtek.c +++ b/drivers/net/phy/realtek.c @@ -217,12 +217,12 @@ static int rtl8211e_config_init(struct phy_device *phydev) if (oldpage < 0) goto err_restore_page; - ret = phy_write(phydev, RTL821x_EXT_PAGE_SELECT, 0xa4); + ret = __phy_write(phydev, RTL821x_EXT_PAGE_SELECT, 0xa4); if (ret) goto err_restore_page; - ret = phy_modify(phydev, 0x1c, RTL8211E_TX_DELAY | RTL8211E_RX_DELAY, - val); + ret = __phy_modify(phydev, 0x1c, RTL8211E_TX_DELAY | RTL8211E_RX_DELAY, + val); err_restore_page: return phy_restore_page(phydev, oldpage, ret); |