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: Wed, 10 Mar 2021 17:35:17 -0800 From: Alexander Duyck <alexander.duyck@...il.com> To: kuba@...nel.org Cc: netdev@...r.kernel.org, oss-drivers@...ronome.com, simon.horman@...ronome.com, yisen.zhuang@...wei.com, salil.mehta@...wei.com, intel-wired-lan@...ts.osuosl.org, jesse.brandeburg@...el.com, anthony.l.nguyen@...el.com, drivers@...sando.io, snelson@...sando.io, netanel@...zon.com, akiyano@...zon.com, gtzalik@...zon.com, saeedb@...zon.com, GR-Linux-NIC-Dev@...vell.com, skalluru@...vell.com, rmody@...vell.com, kys@...rosoft.com, haiyangz@...rosoft.com, sthemmin@...rosoft.com, wei.liu@...nel.org, mst@...hat.com, jasowang@...hat.com, pv-drivers@...are.com, doshir@...are.com, alexanderduyck@...com Subject: [RFC PATCH 01/10] ethtool: Add common function for filling out strings From: Alexander Duyck <alexanderduyck@...com> Add a function to handle the common pattern of printing a string into the ethtool strings interface and incrementing the string pointer by the ETH_GSTRING_LEN. Most of the drivers end up doing this and several have implemented their own versions of this function so it would make sense to consolidate on one implementation. Signed-off-by: Alexander Duyck <alexanderduyck@...com> --- include/linux/ethtool.h | 9 +++++++++ net/ethtool/ioctl.c | 12 ++++++++++++ 2 files changed, 21 insertions(+) diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h index ec4cd3921c67..0493f13b2b20 100644 --- a/include/linux/ethtool.h +++ b/include/linux/ethtool.h @@ -571,4 +571,13 @@ struct ethtool_phy_ops { */ void ethtool_set_ethtool_phy_ops(const struct ethtool_phy_ops *ops); +/** + * ethtool_gsprintf - Write formatted string to ethtool string data + * @data: Pointer to start of string to update + * @fmt: Format of string to write + * + * Write formatted string to data. Update data to point at start of + * next string. + */ +extern __printf(2, 3) void ethtool_gsprintf(u8 **data, const char *fmt, ...); #endif /* _LINUX_ETHTOOL_H */ diff --git a/net/ethtool/ioctl.c b/net/ethtool/ioctl.c index 24783b71c584..44ac73780b6e 100644 --- a/net/ethtool/ioctl.c +++ b/net/ethtool/ioctl.c @@ -1844,6 +1844,18 @@ static int ethtool_get_strings(struct net_device *dev, void __user *useraddr) return ret; } +__printf(2, 3) void ethtool_gsprintf(u8 **data, const char *fmt, ...) +{ + va_list args; + + va_start(args, fmt); + vsnprintf(*data, ETH_GSTRING_LEN, fmt, args); + va_end(args); + + *data += ETH_GSTRING_LEN; +} +EXPORT_SYMBOL(ethtool_gsprintf); + static int ethtool_phys_id(struct net_device *dev, void __user *useraddr) { struct ethtool_value id;
Powered by blists - more mailing lists