diff mbox series

net: phy: fix wrong mask to phy_modify()

Message ID 20180212110252.27804-1-inguin@gmx.de
State Accepted, archived
Delegated to: David Miller
Headers show
Series net: phy: fix wrong mask to phy_modify() | expand

Commit Message

Ingo van Lil Feb. 12, 2018, 11:02 a.m. UTC
When forcing a specific link mode, the PHY driver must clear the
existing speed and duplex bits in BMCR while preserving some other
control bits. This logic was accidentally inverted with the introduction
of phy_modify().

Signed-off-by: Ingo van Lil <inguin@gmx.de>
---
 drivers/net/phy/phy_device.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Andrew Lunn Feb. 12, 2018, 1:39 p.m. UTC | #1
On Mon, Feb 12, 2018 at 12:02:52PM +0100, Ingo van Lil wrote:
> When forcing a specific link mode, the PHY driver must clear the
> existing speed and duplex bits in BMCR while preserving some other
> control bits. This logic was accidentally inverted with the introduction
> of phy_modify().
> 
> Signed-off-by: Ingo van Lil <inguin@gmx.de>

Fixes: fea23fb591cc ("net: phy: convert read-modify-write to phy_modify()")
Reviewed-by: Andrew Lunn <andrew@lunn.ch>

    Andrew
David Miller Feb. 12, 2018, 4:47 p.m. UTC | #2
From: Ingo van Lil <inguin@gmx.de>
Date: Mon, 12 Feb 2018 12:02:52 +0100

> When forcing a specific link mode, the PHY driver must clear the
> existing speed and duplex bits in BMCR while preserving some other
> control bits. This logic was accidentally inverted with the introduction
> of phy_modify().
> 
> Signed-off-by: Ingo van Lil <inguin@gmx.de>

Applied and queued up for -stable.
diff mbox series

Patch

diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
index b13eed21c87d..d39ae77707ef 100644
--- a/drivers/net/phy/phy_device.c
+++ b/drivers/net/phy/phy_device.c
@@ -1382,7 +1382,7 @@  int genphy_setup_forced(struct phy_device *phydev)
 		ctl |= BMCR_FULLDPLX;
 
 	return phy_modify(phydev, MII_BMCR,
-			  BMCR_LOOPBACK | BMCR_ISOLATE | BMCR_PDOWN, ctl);
+			  ~(BMCR_LOOPBACK | BMCR_ISOLATE | BMCR_PDOWN), ctl);
 }
 EXPORT_SYMBOL(genphy_setup_forced);