* [PATCH net-next] net: phy: remove phy_ethtool_sset()
@ 2019-11-22 12:37 Russell King
2019-11-22 15:41 ` Andrew Lunn
2019-11-23 18:50 ` Jakub Kicinski
0 siblings, 2 replies; 4+ messages in thread
From: Russell King @ 2019-11-22 12:37 UTC (permalink / raw)
To: Andrew Lunn, Florian Fainelli, Heiner Kallweit
Cc: David S. Miller, Jonathan Corbet, netdev, linux-doc
There are no users of phy_ethtool_sset() in the kernel anymore, and
as of 3c1bcc8614db ("net: ethernet: Convert phydev advertize and
supported from u32 to link mode"), the implementation is slightly
buggy - it doesn't correctly check the masked advertising mask as it
used to.
Remove it, and update the phy documentation to refer to its replacement
function.
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
---
Documentation/networking/phy.rst | 3 +-
drivers/net/phy/phy.c | 60 --------------------------------
include/linux/phy.h | 1 -
3 files changed, 2 insertions(+), 62 deletions(-)
diff --git a/Documentation/networking/phy.rst b/Documentation/networking/phy.rst
index a689966bc4be..cda1c0a0492a 100644
--- a/Documentation/networking/phy.rst
+++ b/Documentation/networking/phy.rst
@@ -352,7 +352,8 @@ Fills the phydev structure with up-to-date information about the current
settings in the PHY.
::
- int phy_ethtool_sset(struct phy_device *phydev, struct ethtool_cmd *cmd);
+ int phy_ethtool_ksettings_set(struct phy_device *phydev,
+ const struct ethtool_link_ksettings *cmd);
Ethtool convenience functions.
::
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index ef6096dc7182..9e431b9f9d87 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -253,66 +253,6 @@ static void phy_sanitize_settings(struct phy_device *phydev)
}
}
-/**
- * phy_ethtool_sset - generic ethtool sset function, handles all the details
- * @phydev: target phy_device struct
- * @cmd: ethtool_cmd
- *
- * A few notes about parameter checking:
- *
- * - We don't set port or transceiver, so we don't care what they
- * were set to.
- * - phy_start_aneg() will make sure forced settings are sane, and
- * choose the next best ones from the ones selected, so we don't
- * care if ethtool tries to give us bad values.
- */
-int phy_ethtool_sset(struct phy_device *phydev, struct ethtool_cmd *cmd)
-{
- __ETHTOOL_DECLARE_LINK_MODE_MASK(advertising);
- u32 speed = ethtool_cmd_speed(cmd);
-
- if (cmd->phy_address != phydev->mdio.addr)
- return -EINVAL;
-
- /* We make sure that we don't pass unsupported values in to the PHY */
- ethtool_convert_legacy_u32_to_link_mode(advertising, cmd->advertising);
- linkmode_and(advertising, advertising, phydev->supported);
-
- /* Verify the settings we care about. */
- if (cmd->autoneg != AUTONEG_ENABLE && cmd->autoneg != AUTONEG_DISABLE)
- return -EINVAL;
-
- if (cmd->autoneg == AUTONEG_ENABLE && cmd->advertising == 0)
- return -EINVAL;
-
- if (cmd->autoneg == AUTONEG_DISABLE &&
- ((speed != SPEED_1000 &&
- speed != SPEED_100 &&
- speed != SPEED_10) ||
- (cmd->duplex != DUPLEX_HALF &&
- cmd->duplex != DUPLEX_FULL)))
- return -EINVAL;
-
- phydev->autoneg = cmd->autoneg;
-
- phydev->speed = speed;
-
- linkmode_copy(phydev->advertising, advertising);
-
- linkmode_mod_bit(ETHTOOL_LINK_MODE_Autoneg_BIT,
- phydev->advertising, AUTONEG_ENABLE == cmd->autoneg);
-
- phydev->duplex = cmd->duplex;
-
- phydev->mdix_ctrl = cmd->eth_tp_mdix_ctrl;
-
- /* Restart the PHY */
- phy_start_aneg(phydev);
-
- return 0;
-}
-EXPORT_SYMBOL(phy_ethtool_sset);
-
int phy_ethtool_ksettings_set(struct phy_device *phydev,
const struct ethtool_link_ksettings *cmd)
{
diff --git a/include/linux/phy.h b/include/linux/phy.h
index 70173861e1a2..f172ff22c177 100644
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
@@ -1158,7 +1158,6 @@ void phy_queue_state_machine(struct phy_device *phydev, unsigned long jiffies);
void phy_mac_interrupt(struct phy_device *phydev);
void phy_start_machine(struct phy_device *phydev);
void phy_stop_machine(struct phy_device *phydev);
-int phy_ethtool_sset(struct phy_device *phydev, struct ethtool_cmd *cmd);
void phy_ethtool_ksettings_get(struct phy_device *phydev,
struct ethtool_link_ksettings *cmd);
int phy_ethtool_ksettings_set(struct phy_device *phydev,
--
2.20.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH net-next] net: phy: remove phy_ethtool_sset()
2019-11-22 12:37 [PATCH net-next] net: phy: remove phy_ethtool_sset() Russell King
@ 2019-11-22 15:41 ` Andrew Lunn
2019-11-23 18:50 ` Jakub Kicinski
1 sibling, 0 replies; 4+ messages in thread
From: Andrew Lunn @ 2019-11-22 15:41 UTC (permalink / raw)
To: Russell King
Cc: Florian Fainelli, Heiner Kallweit, David S. Miller,
Jonathan Corbet, netdev, linux-doc
On Fri, Nov 22, 2019 at 12:37:08PM +0000, Russell King wrote:
> There are no users of phy_ethtool_sset() in the kernel anymore, and
> as of 3c1bcc8614db ("net: ethernet: Convert phydev advertize and
> supported from u32 to link mode"), the implementation is slightly
> buggy - it doesn't correctly check the masked advertising mask as it
> used to.
>
> Remove it, and update the phy documentation to refer to its replacement
> function.
>
> Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Andrew
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH net-next] net: phy: remove phy_ethtool_sset()
2019-11-22 12:37 [PATCH net-next] net: phy: remove phy_ethtool_sset() Russell King
2019-11-22 15:41 ` Andrew Lunn
@ 2019-11-23 18:50 ` Jakub Kicinski
2019-11-23 18:51 ` Jakub Kicinski
1 sibling, 1 reply; 4+ messages in thread
From: Jakub Kicinski @ 2019-11-23 18:50 UTC (permalink / raw)
To: Russell King
Cc: Andrew Lunn, Florian Fainelli, Heiner Kallweit, David S. Miller,
Jonathan Corbet, netdev, linux-doc
On Fri, 22 Nov 2019 12:37:08 +0000, Russell King wrote:
> There are no users of phy_ethtool_sset() in the kernel anymore, and
> as of 3c1bcc8614db ("net: ethernet: Convert phydev advertize and
> supported from u32 to link mode"), the implementation is slightly
> buggy - it doesn't correctly check the masked advertising mask as it
> used to.
>
> Remove it, and update the phy documentation to refer to its replacement
> function.
>
> Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Applied, thank you!
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH net-next] net: phy: remove phy_ethtool_sset()
2019-11-23 18:50 ` Jakub Kicinski
@ 2019-11-23 18:51 ` Jakub Kicinski
0 siblings, 0 replies; 4+ messages in thread
From: Jakub Kicinski @ 2019-11-23 18:51 UTC (permalink / raw)
To: Russell King
Cc: Andrew Lunn, Florian Fainelli, Heiner Kallweit, David S. Miller,
Jonathan Corbet, netdev, linux-doc
On Sat, 23 Nov 2019 10:50:21 -0800, Jakub Kicinski wrote:
> On Fri, 22 Nov 2019 12:37:08 +0000, Russell King wrote:
> > There are no users of phy_ethtool_sset() in the kernel anymore, and
> > as of 3c1bcc8614db ("net: ethernet: Convert phydev advertize and
> > supported from u32 to link mode"), the implementation is slightly
> > buggy - it doesn't correctly check the masked advertising mask as it
> > used to.
> >
> > Remove it, and update the phy documentation to refer to its replacement
> > function.
> >
> > Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
>
> Applied, thank you!
FWIW I've added the word "commit" before the hash, checkpatch is really
insistent on that.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2019-11-23 18:51 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-22 12:37 [PATCH net-next] net: phy: remove phy_ethtool_sset() Russell King
2019-11-22 15:41 ` Andrew Lunn
2019-11-23 18:50 ` Jakub Kicinski
2019-11-23 18:51 ` Jakub Kicinski
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).