Commit dffe7d2e authored by Kunihiko Hayashi's avatar Kunihiko Hayashi Committed by David S. Miller

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: f81dadbc ("net: phy: realtek: Add rtl8211e rx/tx delays config")
Signed-off-by: default avatarKunihiko Hayashi <hayashi.kunihiko@socionext.com>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 5afcd14c
...@@ -217,12 +217,12 @@ static int rtl8211e_config_init(struct phy_device *phydev) ...@@ -217,12 +217,12 @@ static int rtl8211e_config_init(struct phy_device *phydev)
if (oldpage < 0) if (oldpage < 0)
goto err_restore_page; goto err_restore_page;
ret = phy_write(phydev, RTL821x_EXT_PAGE_SELECT, 0xa4); ret = __phy_write(phydev, RTL821x_EXT_PAGE_SELECT, 0xa4);
if (ret) if (ret)
goto err_restore_page; goto err_restore_page;
ret = phy_modify(phydev, 0x1c, RTL8211E_TX_DELAY | RTL8211E_RX_DELAY, ret = __phy_modify(phydev, 0x1c, RTL8211E_TX_DELAY | RTL8211E_RX_DELAY,
val); val);
err_restore_page: err_restore_page:
return phy_restore_page(phydev, oldpage, ret); return phy_restore_page(phydev, oldpage, ret);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment