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.

Reply via email to