[2/2,SRU,Xenial] net: phy: fix phy_start to consider PHY_IGNORE_INTERRUPT

Message ID 20180807192126.9965-3-dann.frazier@canonical.com
State New
Headers show
Series
  • Fix link recovery on APM Merlin boards
Related show

Commit Message

dann frazier Aug. 7, 2018, 7:21 p.m.
From: Heiner Kallweit <hkallweit1@gmail.com>

BugLink: https://bugs.launchpad.net/bugs/1785739

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>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 08f5138512180a479ce6b9d23b825c9f4cd3be77)
Signed-off-by: dann frazier <dann.frazier@canonical.com>
---
 drivers/net/phy/phy.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Patch

diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index 6db20e2d1e1af..1ea206b7452a2 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -793,7 +793,7 @@  void phy_start(struct phy_device *phydev)
 		break;
 	case PHY_HALTED:
 		/* 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;