[PATCH] net: phy: fix waiting for link
Ahmad Fatoum
a.fatoum at pengutronix.de
Fri Mar 12 10:23:56 GMT 2021
On 12.03.21 11:13, Sascha Hauer wrote:
> phydev->adjust_link() is called only from phy_update_status() when the
> link status changes during that function. phydev->link is also updated
> in genphy_update_link() called from phy_wait_aneg_done(), so it can
> happen that phydev->link changes outside of phy_update_status(), thus
> phydev->adjust_link is never called and no link change notice is
> printed.
>
> Instead of calling genphy_update_link() from phy_wait_aneg_done(), call
> phy_update_status(). This makes sure that a link change is properly
> noticed.
>
Fixes: 8f75aa496dcb ("net: reply to ping requests")
Isn't it?
> Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
> ---
> drivers/net/phy/phy.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
> index 622acbe40d..e8e8dad5bd 100644
> --- a/drivers/net/phy/phy.c
> +++ b/drivers/net/phy/phy.c
> @@ -571,7 +571,7 @@ int phy_wait_aneg_done(struct phy_device *phydev)
> }
>
> do {
> - genphy_update_link(phydev);
> + phy_update_status(phydev);
> if (phydev->link == 1)
> return 0;
> } while (!is_timeout(start, PHY_AN_TIMEOUT * SECOND));
>
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list