lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Tue, 19 Jan 2016 16:44:02 -0800 From: David Decotigny <ddecotig@...il.com> To: "David S. Miller" <davem@...emloft.net>, Ben Hutchings <ben@...adent.org.uk>, linux-kernel@...r.kernel.org, netdev@...r.kernel.org, linux-api@...r.kernel.org, linux-mips@...ux-mips.org, fcoe-devel@...n-fcoe.org, Andrew Morton <akpm@...ux-foundation.org>, Tejun Heo <tj@...nel.org> Cc: Eric Dumazet <edumazet@...gle.com>, Eugenia Emantayev <eugenia@...lanox.co.il>, Or Gerlitz <ogerlitz@...lanox.com>, Ido Shamay <idos@...lanox.com>, Joe Perches <joe@...ches.com>, Saeed Mahameed <saeedm@...lanox.com>, Govindarajulu Varadarajan <_govind@....com>, Venkata Duvvuru <VenkatKumar.Duvvuru@...lex.Com>, Jeff Kirsher <jeffrey.t.kirsher@...el.com>, Pravin B Shelar <pshelar@...ira.com>, Ed Swierk <eswierk@...portsystems.com>, Robert Love <robert.w.love@...el.com>, "James E.J. Bottomley" <JBottomley@...allels.com>, Yuval Mintz <Yuval.Mintz@...gic.com>, Rasmus Villemoes <linux@...musvillemoes.dk>, David Decotigny <decot@...glers.com> Subject: [PATCH net-next v6 17/19] net: ethtool: remove unused __ethtool_get_settings From: David Decotigny <decot@...glers.com> replaced by __ethtool_get_ksettings. Signed-off-by: David Decotigny <decot@...glers.com> --- include/linux/ethtool.h | 4 ---- net/core/ethtool.c | 45 ++++++++++++++------------------------------- 2 files changed, 14 insertions(+), 35 deletions(-) diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h index 6077cbb..05d4f0e 100644 --- a/include/linux/ethtool.h +++ b/include/linux/ethtool.h @@ -148,10 +148,6 @@ struct ethtool_ksettings { extern int __ethtool_get_ksettings(struct net_device *dev, struct ethtool_ksettings *ksettings); -/* DEPRECATED, use __ethtool_get_ksettings */ -extern int __ethtool_get_settings(struct net_device *dev, - struct ethtool_cmd *cmd); - /** * struct ethtool_ops - optional netdev operations * @get_settings: DEPRECATED, use %get_ksettings/%set_ksettings diff --git a/net/core/ethtool.c b/net/core/ethtool.c index ed1fde3..95ce5c9 100644 --- a/net/core/ethtool.c +++ b/net/core/ethtool.c @@ -529,7 +529,12 @@ int __ethtool_get_ksettings(struct net_device *dev, * legacy %ethtool_cmd API, unless it's not supported either. * TODO: remove when ethtool_ops::get_settings disappears internally */ - err = __ethtool_get_settings(dev, &cmd); + if (!dev->ethtool_ops->get_settings) + return -EOPNOTSUPP; + + memset(&cmd, 0, sizeof(cmd)); + cmd.cmd = ETHTOOL_GSET; + err = dev->ethtool_ops->get_settings(dev, &cmd); if (err < 0) return err; @@ -699,30 +704,6 @@ static int ethtool_set_ksettings(struct net_device *dev, void __user *useraddr) return dev->ethtool_ops->set_ksettings(dev, &ksettings); } -/* Internal kernel helper to query a device ethtool_cmd settings. - * - * Note about transition to ethtool_settings API: We do not need (or - * want) this function to support "dev" instances that implement the - * ethtool_settings API as we will update the drivers calling this - * function to call __ethtool_get_ksettings instead, before the first - * drivers implement ethtool_ops::get_ksettings. - * - * TODO 1: at least make this function static when no driver is using it - * TODO 2: remove when ethtool_ops::get_settings disappears internally - */ -int __ethtool_get_settings(struct net_device *dev, struct ethtool_cmd *cmd) -{ - ASSERT_RTNL(); - - if (!dev->ethtool_ops->get_settings) - return -EOPNOTSUPP; - - memset(cmd, 0, sizeof(struct ethtool_cmd)); - cmd->cmd = ETHTOOL_GSET; - return dev->ethtool_ops->get_settings(dev, cmd); -} -EXPORT_SYMBOL(__ethtool_get_settings); - static void warn_incomplete_ethtool_legacy_settings_conversion(const char *details) { @@ -764,16 +745,18 @@ static int ethtool_get_settings(struct net_device *dev, void __user *useraddr) /* send a sensible cmd tag back to user */ cmd.cmd = ETHTOOL_GSET; } else { - int err; - /* TODO: return -EOPNOTSUPP when - * ethtool_ops::get_settings disappears internally - */ - /* driver doesn't support %ethtool_ksettings * API. revert to legacy %ethtool_cmd API, unless it's * not supported either. */ - err = __ethtool_get_settings(dev, &cmd); + int err; + + if (!dev->ethtool_ops->get_settings) + return -EOPNOTSUPP; + + memset(&cmd, 0, sizeof(cmd)); + cmd.cmd = ETHTOOL_GSET; + err = dev->ethtool_ops->get_settings(dev, &cmd); if (err < 0) return err; } -- 2.7.0.rc3.207.g0ac5344
Powered by blists - more mailing lists