From: Heiner Kallweit <hkallwe...@gmail.com> Date: Wed, 6 Feb 2019 19:39:52 +0100
> The link status value latches link-down events. To get the current > status we read the register twice in genphy_update_link(). There's > a potential risk that we miss a link-down event in polling mode. > This may cause issues if the user e.g. connects his machine to a > different network. > > On the other hand reading the latched value may cause issues in > interrupt mode. Following scenario: > > - After boot link goes up > - phy_start() is called triggering an aneg restart, hence link goes > down and link-down info is latched. > - After aneg has finished link goes up and triggers an interrupt. > Interrupt handler reads link status, means it reads the latched > "link is down" info. But there won't be another interrupt as long > as link stays up, therefore phylib will never recognize that link > is up. > > Deal with both scenarios by reading the register twice in interrupt > mode only. > > Signed-off-by: Heiner Kallweit <hkallwe...@gmail.com> Applied, thanks.