aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/phy/phy.c
diff options
context:
space:
mode:
authorAndrew Lunn <andrew@lunn.ch>2018-12-05 15:49:45 -0500
committerDavid S. Miller <davem@davemloft.net>2018-12-05 19:26:16 -0500
commit9db299c736eea35ea97dbc9d80a58befc067bcd8 (patch)
treef0d724457dd46954952c7db156d267beed5e1545 /drivers/net/phy/phy.c
parent6dbd0090f999c443763c0742b574da1ce189404c (diff)
net: phy: Fix ioctl handler when modifing MII_ADVERTISE
When the MII_ADVERTISE register is modified by the IOCTL handler, phydev->advertising needs recalculating. Use the _mod_ variant of mii_adv_to_linkmode_adv_t so that bits outside of the advertise registers are not cleared. Fixes: c0ec3c273677 ("net: phy: Convert u32 phydev->lp_advertising to linkmode") Reported-by: Heiner Kallweit <hkallweit1@gmail.com> Signed-off-by: Andrew Lunn <andrew@lunn.ch> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/phy/phy.c')
-rw-r--r--drivers/net/phy/phy.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index e1a1e54baac2..e24708f1fc16 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -437,8 +437,8 @@ int phy_mii_ioctl(struct phy_device *phydev, struct ifreq *ifr, int cmd)
437 } 437 }
438 break; 438 break;
439 case MII_ADVERTISE: 439 case MII_ADVERTISE:
440 mii_adv_to_linkmode_adv_t(phydev->advertising, 440 mii_adv_mod_linkmode_adv_t(phydev->advertising,
441 val); 441 val);
442 change_autoneg = true; 442 change_autoneg = true;
443 break; 443 break;
444 default: 444 default: