Message ID | 9a965e5e-50a4-ed2e-51ce-eb30c11c3cdf@gmail.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
Series | [net,v3] net: phy: fix phy_start to consider PHY_IGNORE_INTERRUPT | expand |
On 02/08/2018 12:01 PM, Heiner Kallweit wrote: > This condition wasn't adjusted when PHY_IGNORE_INTERRUPT (-2) was added > long ago. In case of PHY_IGNORE_INTERRUPT the MAC interrupt indicates > also PHY state changes and we should do what the symbol says. > > Fixes: 84a527a41f38 ("net: phylib: fix interrupts re-enablement in phy_start") > Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Thanks Heiner!
From: Heiner Kallweit <hkallweit1@gmail.com> Date: Thu, 8 Feb 2018 21:01:48 +0100 > This condition wasn't adjusted when PHY_IGNORE_INTERRUPT (-2) was added > long ago. In case of PHY_IGNORE_INTERRUPT the MAC interrupt indicates > also PHY state changes and we should do what the symbol says. > > Fixes: 84a527a41f38 ("net: phylib: fix interrupts re-enablement in phy_start") > Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> Applied and queued up for -stable, thank you.
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c index f3313a129..50ed35a45 100644 --- a/drivers/net/phy/phy.c +++ b/drivers/net/phy/phy.c @@ -822,7 +822,7 @@ void phy_start(struct phy_device *phydev) phy_resume(phydev); /* make sure interrupts are re-enabled for the PHY */ - if (phydev->irq != PHY_POLL) { + if (phy_interrupt_is_valid(phydev)) { err = phy_enable_interrupts(phydev); if (err < 0) break;
This condition wasn't adjusted when PHY_IGNORE_INTERRUPT (-2) was added long ago. In case of PHY_IGNORE_INTERRUPT the MAC interrupt indicates also PHY state changes and we should do what the symbol says. Fixes: 84a527a41f38 ("net: phylib: fix interrupts re-enablement in phy_start") Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com> --- v2: - use phy_interrupt_is_valid() instead of checking for irq > 0 v3: - added "Fixes" tag - fix is a candidate for stable, v4.9+ --- drivers/net/phy/phy.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)