All of lore.kernel.org
 help / color / mirror / Atom feed
From: Justin Stitt <justinstitt@google.com>
To: "David S. Miller" <davem@davemloft.net>,
	"Eric Dumazet" <edumazet@google.com>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Paolo Abeni" <pabeni@redhat.com>,
	"Shay Agroskin" <shayagr@amazon.com>,
	"Arthur Kiyanovski" <akiyano@amazon.com>,
	"David Arinzon" <darinzon@amazon.com>,
	"Noam Dagan" <ndagan@amazon.com>,
	"Saeed Bishara" <saeedb@amazon.com>,
	"Rasesh Mody" <rmody@marvell.com>,
	"Sudarsana Kalluru" <skalluru@marvell.com>,
	GR-Linux-NIC-Dev@marvell.com,
	"Dimitris Michailidis" <dmichail@fungible.com>,
	"Yisen Zhuang" <yisen.zhuang@huawei.com>,
	"Salil Mehta" <salil.mehta@huawei.com>,
	"Jesse Brandeburg" <jesse.brandeburg@intel.com>,
	"Tony Nguyen" <anthony.l.nguyen@intel.com>,
	"Louis Peens" <louis.peens@corigine.com>,
	"Shannon Nelson" <shannon.nelson@amd.com>,
	"Brett Creeley" <brett.creeley@amd.com>,
	drivers@pensando.io, "K. Y. Srinivasan" <kys@microsoft.com>,
	"Haiyang Zhang" <haiyangz@microsoft.com>,
	"Wei Liu" <wei.liu@kernel.org>,
	"Dexuan Cui" <decui@microsoft.com>,
	"Ronak Doshi" <doshir@vmware.com>,
	"VMware PV-Drivers Reviewers" <pv-drivers@vmware.com>,
	"Andy Whitcroft" <apw@canonical.com>,
	"Joe Perches" <joe@perches.com>,
	"Dwaipayan Ray" <dwaipayanray1@gmail.com>,
	"Lukas Bulwahn" <lukas.bulwahn@gmail.com>,
	"Hauke Mehrtens" <hauke@hauke-m.de>,
	"Andrew Lunn" <andrew@lunn.ch>,
	"Florian Fainelli" <f.fainelli@gmail.com>,
	"Vladimir Oltean" <olteanv@gmail.com>,
	"Arınç ÜNAL" <arinc.unal@arinc9.com>,
	"Daniel Golle" <daniel@makrotopia.org>,
	"Landen Chao" <Landen.Chao@mediatek.com>,
	"DENG Qingfang" <dqfext@gmail.com>,
	"Sean Wang" <sean.wang@mediatek.com>,
	"Matthias Brugger" <matthias.bgg@gmail.com>,
	"AngeloGioacchino Del Regno"
	<angelogioacchino.delregno@collabora.com>,
	"Linus Walleij" <linus.walleij@linaro.org>,
	"Alvin Šipraga" <alsi@bang-olufsen.dk>,
	"Wei Fang" <wei.fang@nxp.com>,
	"Shenwei Wang" <shenwei.wang@nxp.com>,
	"Clark Wang" <xiaoning.wang@nxp.com>,
	"NXP Linux Team" <linux-imx@nxp.com>,
	"Lars Povlsen" <lars.povlsen@microchip.com>,
	"Steen Hegelund" <Steen.Hegelund@microchip.com>,
	"Daniel Machon" <daniel.machon@microchip.com>,
	UNGLinuxDriver@microchip.com,
	"Jiawen Wu" <jiawenwu@trustnetic.com>,
	"Mengyuan Lou" <mengyuanlou@net-swift.com>,
	"Heiner Kallweit" <hkallweit1@gmail.com>,
	"Russell King" <linux@armlinux.org.uk>,
	"Alexei Starovoitov" <ast@kernel.org>,
	"Daniel Borkmann" <daniel@iogearbox.net>,
	"Jesper Dangaard Brouer" <hawk@kernel.org>,
	"John Fastabend" <john.fastabend@gmail.com>
Cc: linux-kernel@vger.kernel.org, netdev@vger.kernel.org,
	Nick Desaulniers <ndesaulniers@google.com>,
	Nathan Chancellor <nathan@kernel.org>,
	Kees Cook <keescook@chromium.org>,
	intel-wired-lan@lists.osuosl.org, oss-drivers@corigine.com,
	linux-hyperv@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-mediatek@lists.infradead.org, bpf@vger.kernel.org,
	Justin Stitt <justinstitt@google.com>
Subject: [PATCH next v2 1/3] ethtool: Implement ethtool_puts()
Date: Thu, 26 Oct 2023 21:56:07 +0000	[thread overview]
Message-ID: <20231026-ethtool_puts_impl-v2-1-0d67cbdd0538@google.com> (raw)
In-Reply-To: <20231026-ethtool_puts_impl-v2-0-0d67cbdd0538@google.com>

Use strscpy() to implement ethtool_puts().

Functionally the same as ethtool_sprintf() when it's used with two
arguments or with just "%s" format specifier.

Signed-off-by: Justin Stitt <justinstitt@google.com>
---
 include/linux/ethtool.h | 34 +++++++++++++++++++++++-----------
 net/ethtool/ioctl.c     |  7 +++++++
 2 files changed, 30 insertions(+), 11 deletions(-)

diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
index 226a36ed5aa1..7129dd2e227c 100644
--- a/include/linux/ethtool.h
+++ b/include/linux/ethtool.h
@@ -1053,22 +1053,34 @@ static inline int ethtool_mm_frag_size_min_to_add(u32 val_min, u32 *val_add,
  */
 extern __printf(2, 3) void ethtool_sprintf(u8 **data, const char *fmt, ...);
 
+/**
+ * ethtool_puts - Write string to ethtool string data
+ * @data: Pointer to start of string to update
+ * @str: String to write
+ *
+ * Write string to data. Update data to point at start of next
+ * string.
+ *
+ * Prefer this function to ethtool_sprintf() when given only
+ * two arguments or if @fmt is just "%s".
+ */
+extern void ethtool_puts(u8 **data, const char *str);
+
 /* Link mode to forced speed capabilities maps */
 struct ethtool_forced_speed_map {
-	u32		speed;
+	u32 speed;
 	__ETHTOOL_DECLARE_LINK_MODE_MASK(caps);
 
-	const u32	*cap_arr;
-	u32		arr_size;
+	const u32 *cap_arr;
+	u32 arr_size;
 };
 
-#define ETHTOOL_FORCED_SPEED_MAP(prefix, value)				\
-{									\
-	.speed		= SPEED_##value,				\
-	.cap_arr	= prefix##_##value,				\
-	.arr_size	= ARRAY_SIZE(prefix##_##value),			\
-}
+#define ETHTOOL_FORCED_SPEED_MAP(prefix, value)                      \
+	{                                                            \
+		.speed = SPEED_##value, .cap_arr = prefix##_##value, \
+		.arr_size = ARRAY_SIZE(prefix##_##value),            \
+	}
 
-void
-ethtool_forced_speed_maps_init(struct ethtool_forced_speed_map *maps, u32 size);
+void ethtool_forced_speed_maps_init(struct ethtool_forced_speed_map *maps,
+				    u32 size);
 #endif /* _LINUX_ETHTOOL_H */
diff --git a/net/ethtool/ioctl.c b/net/ethtool/ioctl.c
index 0b0ce4f81c01..abdf05edf804 100644
--- a/net/ethtool/ioctl.c
+++ b/net/ethtool/ioctl.c
@@ -1991,6 +1991,13 @@ __printf(2, 3) void ethtool_sprintf(u8 **data, const char *fmt, ...)
 }
 EXPORT_SYMBOL(ethtool_sprintf);
 
+void ethtool_puts(u8 **data, const char *str)
+{
+	strscpy(*data, str, ETH_GSTRING_LEN);
+	*data += ETH_GSTRING_LEN;
+}
+EXPORT_SYMBOL(ethtool_puts);
+
 static int ethtool_phys_id(struct net_device *dev, void __user *useraddr)
 {
 	struct ethtool_value id;

-- 
2.42.0.820.g83a721a137-goog


WARNING: multiple messages have this Message-ID (diff)
From: Justin Stitt <justinstitt@google.com>
To: "David S. Miller" <davem@davemloft.net>,
	"Eric Dumazet" <edumazet@google.com>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Paolo Abeni" <pabeni@redhat.com>,
	"Shay Agroskin" <shayagr@amazon.com>,
	"Arthur Kiyanovski" <akiyano@amazon.com>,
	"David Arinzon" <darinzon@amazon.com>,
	"Noam Dagan" <ndagan@amazon.com>,
	"Saeed Bishara" <saeedb@amazon.com>,
	"Rasesh Mody" <rmody@marvell.com>,
	"Sudarsana Kalluru" <skalluru@marvell.com>,
	GR-Linux-NIC-Dev@marvell.com,
	"Dimitris Michailidis" <dmichail@fungible.com>,
	"Yisen Zhuang" <yisen.zhuang@huawei.com>,
	"Salil Mehta" <salil.mehta@huawei.com>,
	"Jesse Brandeburg" <jesse.brandeburg@intel.com>,
	"Tony Nguyen" <anthony.l.nguyen@intel.com>,
	"Louis Peens" <louis.peens@corigine.com>,
	"Shannon Nelson" <shannon.nelson@amd.com>,
	"Brett Creeley" <brett.creeley@amd.com>,
	drivers@pensando.io, "K. Y. Srinivasan" <kys@microsoft.com>,
	"Haiyang Zhang" <haiyangz@microsoft.com>,
	"Wei Liu" <wei.liu@kernel.org>,
	"Dexuan Cui" <decui@microsoft.com>,
	"Ronak Doshi" <doshir@vmware.com>,
	"VMware PV-Drivers Reviewers" <pv-drivers@vmware.com>,
	"Andy Whitcroft" <apw@canonical.com>,
	"Joe Perches" <joe@perches.com>,
	"Dwaipayan Ray" <dwaipayanray1@gmail.com>,
	"Lukas Bulwahn" <lukas.bulwahn@gmail.com>,
	"Hauke Mehrtens" <hauke@hauke-m.de>,
	"Andrew Lunn" <andrew@lunn.ch>,
	"Florian Fainelli" <f.fainelli@gmail.com>,
	"Vladimir Oltean" <olteanv@gmail.com>,
	"Arınç ÜNAL" <arinc.unal@arinc9.com>,
	"Daniel Golle" <daniel@makrotopia.org>,
	"Landen Chao" <Landen.Chao@mediatek.com>,
	"DENG Qingfang" <dqfext@gmail.com>,
	"Sean Wang" <sean.wang@mediatek.com>,
	"Matthias Brugger" <matthias.bgg@gmail.com>,
	"AngeloGioacchino Del Regno"
	<angelogioacchino.delregno@collabora.com>,
	"Linus Walleij" <linus.walleij@linaro.org>,
	"Alvin Šipraga" <alsi@bang-olufsen.dk>,
	"Wei Fang" <wei.fang@nxp.com>,
	"Shenwei Wang" <shenwei.wang@nxp.com>,
	"Clark Wang" <xiaoning.wang@nxp.com>,
	"NXP Linux Team" <linux-imx@nxp.com>,
	"Lars Povlsen" <lars.povlsen@microchip.com>,
	"Steen Hegelund" <Steen.Hegelund@microchip.com>,
	"Daniel Machon" <daniel.machon@microchip.com>,
	UNGLinuxDriver@microchip.com,
	"Jiawen Wu" <jiawenwu@trustnetic.com>,
	"Mengyuan Lou" <mengyuanlou@net-swift.com>,
	"Heiner Kallweit" <hkallweit1@gmail.com>,
	"Russell King" <linux@armlinux.org.uk>,
	"Alexei Starovoitov" <ast@kernel.org>,
	"Daniel Borkmann" <daniel@iogearbox.net>,
	"Jesper Dangaard Brouer" <hawk@kernel.org>,
	"John Fastabend" <john.fastabend@gmail.com>
Cc: linux-hyperv@vger.kernel.org, Kees Cook <keescook@chromium.org>,
	netdev@vger.kernel.org,
	Nick Desaulniers <ndesaulniers@google.com>,
	linux-kernel@vger.kernel.org,
	Nathan Chancellor <nathan@kernel.org>,
	oss-drivers@corigine.com, intel-wired-lan@lists.osuosl.org,
	Justin Stitt <justinstitt@google.com>,
	linux-mediatek@lists.infradead.org, bpf@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org
Subject: [Intel-wired-lan] [PATCH next v2 1/3] ethtool: Implement ethtool_puts()
Date: Thu, 26 Oct 2023 21:56:07 +0000	[thread overview]
Message-ID: <20231026-ethtool_puts_impl-v2-1-0d67cbdd0538@google.com> (raw)
In-Reply-To: <20231026-ethtool_puts_impl-v2-0-0d67cbdd0538@google.com>

Use strscpy() to implement ethtool_puts().

Functionally the same as ethtool_sprintf() when it's used with two
arguments or with just "%s" format specifier.

Signed-off-by: Justin Stitt <justinstitt@google.com>
---
 include/linux/ethtool.h | 34 +++++++++++++++++++++++-----------
 net/ethtool/ioctl.c     |  7 +++++++
 2 files changed, 30 insertions(+), 11 deletions(-)

diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
index 226a36ed5aa1..7129dd2e227c 100644
--- a/include/linux/ethtool.h
+++ b/include/linux/ethtool.h
@@ -1053,22 +1053,34 @@ static inline int ethtool_mm_frag_size_min_to_add(u32 val_min, u32 *val_add,
  */
 extern __printf(2, 3) void ethtool_sprintf(u8 **data, const char *fmt, ...);
 
+/**
+ * ethtool_puts - Write string to ethtool string data
+ * @data: Pointer to start of string to update
+ * @str: String to write
+ *
+ * Write string to data. Update data to point at start of next
+ * string.
+ *
+ * Prefer this function to ethtool_sprintf() when given only
+ * two arguments or if @fmt is just "%s".
+ */
+extern void ethtool_puts(u8 **data, const char *str);
+
 /* Link mode to forced speed capabilities maps */
 struct ethtool_forced_speed_map {
-	u32		speed;
+	u32 speed;
 	__ETHTOOL_DECLARE_LINK_MODE_MASK(caps);
 
-	const u32	*cap_arr;
-	u32		arr_size;
+	const u32 *cap_arr;
+	u32 arr_size;
 };
 
-#define ETHTOOL_FORCED_SPEED_MAP(prefix, value)				\
-{									\
-	.speed		= SPEED_##value,				\
-	.cap_arr	= prefix##_##value,				\
-	.arr_size	= ARRAY_SIZE(prefix##_##value),			\
-}
+#define ETHTOOL_FORCED_SPEED_MAP(prefix, value)                      \
+	{                                                            \
+		.speed = SPEED_##value, .cap_arr = prefix##_##value, \
+		.arr_size = ARRAY_SIZE(prefix##_##value),            \
+	}
 
-void
-ethtool_forced_speed_maps_init(struct ethtool_forced_speed_map *maps, u32 size);
+void ethtool_forced_speed_maps_init(struct ethtool_forced_speed_map *maps,
+				    u32 size);
 #endif /* _LINUX_ETHTOOL_H */
diff --git a/net/ethtool/ioctl.c b/net/ethtool/ioctl.c
index 0b0ce4f81c01..abdf05edf804 100644
--- a/net/ethtool/ioctl.c
+++ b/net/ethtool/ioctl.c
@@ -1991,6 +1991,13 @@ __printf(2, 3) void ethtool_sprintf(u8 **data, const char *fmt, ...)
 }
 EXPORT_SYMBOL(ethtool_sprintf);
 
+void ethtool_puts(u8 **data, const char *str)
+{
+	strscpy(*data, str, ETH_GSTRING_LEN);
+	*data += ETH_GSTRING_LEN;
+}
+EXPORT_SYMBOL(ethtool_puts);
+
 static int ethtool_phys_id(struct net_device *dev, void __user *useraddr)
 {
 	struct ethtool_value id;

-- 
2.42.0.820.g83a721a137-goog

_______________________________________________
Intel-wired-lan mailing list
Intel-wired-lan@osuosl.org
https://lists.osuosl.org/mailman/listinfo/intel-wired-lan

  reply	other threads:[~2023-10-26 21:56 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-26 21:56 [PATCH next v2 0/3] ethtool: Add ethtool_puts() Justin Stitt
2023-10-26 21:56 ` [Intel-wired-lan] " Justin Stitt
2023-10-26 21:56 ` Justin Stitt [this message]
2023-10-26 21:56   ` [Intel-wired-lan] [PATCH next v2 1/3] ethtool: Implement ethtool_puts() Justin Stitt
2023-10-26 22:02   ` Vladimir Oltean
2023-10-26 22:02     ` [Intel-wired-lan] " Vladimir Oltean
2023-10-26 22:09     ` Justin Stitt
2023-10-26 22:09       ` [Intel-wired-lan] " Justin Stitt
2023-10-26 22:11       ` Justin Stitt
2023-10-26 22:11         ` [Intel-wired-lan] " Justin Stitt
2023-10-26 22:21         ` Vladimir Oltean
2023-10-26 22:21           ` [Intel-wired-lan] " Vladimir Oltean
2023-10-26 22:25       ` Vladimir Oltean
2023-10-26 22:25         ` [Intel-wired-lan] " Vladimir Oltean
2023-10-26 22:25         ` Vladimir Oltean
2023-10-27 19:38         ` Justin Stitt
2023-10-27 19:38           ` [Intel-wired-lan] " Justin Stitt
2023-10-27 19:38           ` Justin Stitt
2023-10-26 21:56 ` [PATCH next v2 2/3] checkpatch: add ethtool_sprintf rules Justin Stitt
2023-10-26 21:56   ` [Intel-wired-lan] " Justin Stitt
2023-10-26 22:12   ` Vladimir Oltean
2023-10-26 22:12     ` [Intel-wired-lan] " Vladimir Oltean
2023-10-26 22:24     ` Justin Stitt
2023-10-26 22:24       ` [Intel-wired-lan] " Justin Stitt
2023-10-26 22:33       ` Vladimir Oltean
2023-10-26 22:33         ` [Intel-wired-lan] " Vladimir Oltean
2023-10-26 22:33         ` Vladimir Oltean
2023-10-26 22:38   ` Joe Perches
2023-10-26 22:38     ` [Intel-wired-lan] " Joe Perches
2023-10-27 19:40     ` Justin Stitt
2023-10-27 19:40       ` [Intel-wired-lan] " Justin Stitt
2023-10-27 21:57       ` Joe Perches
2023-10-27 21:57         ` [Intel-wired-lan] " Joe Perches
2023-10-26 21:56 ` [PATCH next v2 3/3] treewide: Convert some ethtool_sprintf() to ethtool_puts() Justin Stitt
2023-10-26 21:56   ` [Intel-wired-lan] " Justin Stitt
2023-10-26 22:17   ` Vladimir Oltean
2023-10-26 22:17     ` [Intel-wired-lan] " Vladimir Oltean
2023-10-27  0:24 ` [PATCH next v2 0/3] ethtool: Add ethtool_puts() Andrew Lunn
2023-10-27  0:24   ` [Intel-wired-lan] " Andrew Lunn
2023-10-27 19:32   ` Justin Stitt
2023-10-27 19:32     ` [Intel-wired-lan] " Justin Stitt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20231026-ethtool_puts_impl-v2-1-0d67cbdd0538@google.com \
    --to=justinstitt@google.com \
    --cc=GR-Linux-NIC-Dev@marvell.com \
    --cc=Landen.Chao@mediatek.com \
    --cc=Steen.Hegelund@microchip.com \
    --cc=UNGLinuxDriver@microchip.com \
    --cc=akiyano@amazon.com \
    --cc=alsi@bang-olufsen.dk \
    --cc=andrew@lunn.ch \
    --cc=angelogioacchino.delregno@collabora.com \
    --cc=anthony.l.nguyen@intel.com \
    --cc=apw@canonical.com \
    --cc=arinc.unal@arinc9.com \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=brett.creeley@amd.com \
    --cc=daniel.machon@microchip.com \
    --cc=daniel@iogearbox.net \
    --cc=daniel@makrotopia.org \
    --cc=darinzon@amazon.com \
    --cc=davem@davemloft.net \
    --cc=decui@microsoft.com \
    --cc=dmichail@fungible.com \
    --cc=doshir@vmware.com \
    --cc=dqfext@gmail.com \
    --cc=drivers@pensando.io \
    --cc=dwaipayanray1@gmail.com \
    --cc=edumazet@google.com \
    --cc=f.fainelli@gmail.com \
    --cc=haiyangz@microsoft.com \
    --cc=hauke@hauke-m.de \
    --cc=hawk@kernel.org \
    --cc=hkallweit1@gmail.com \
    --cc=intel-wired-lan@lists.osuosl.org \
    --cc=jesse.brandeburg@intel.com \
    --cc=jiawenwu@trustnetic.com \
    --cc=joe@perches.com \
    --cc=john.fastabend@gmail.com \
    --cc=keescook@chromium.org \
    --cc=kuba@kernel.org \
    --cc=kys@microsoft.com \
    --cc=lars.povlsen@microchip.com \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-hyperv@vger.kernel.org \
    --cc=linux-imx@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=linux@armlinux.org.uk \
    --cc=louis.peens@corigine.com \
    --cc=lukas.bulwahn@gmail.com \
    --cc=matthias.bgg@gmail.com \
    --cc=mengyuanlou@net-swift.com \
    --cc=nathan@kernel.org \
    --cc=ndagan@amazon.com \
    --cc=ndesaulniers@google.com \
    --cc=netdev@vger.kernel.org \
    --cc=olteanv@gmail.com \
    --cc=oss-drivers@corigine.com \
    --cc=pabeni@redhat.com \
    --cc=pv-drivers@vmware.com \
    --cc=rmody@marvell.com \
    --cc=saeedb@amazon.com \
    --cc=salil.mehta@huawei.com \
    --cc=sean.wang@mediatek.com \
    --cc=shannon.nelson@amd.com \
    --cc=shayagr@amazon.com \
    --cc=shenwei.wang@nxp.com \
    --cc=skalluru@marvell.com \
    --cc=wei.fang@nxp.com \
    --cc=wei.liu@kernel.org \
    --cc=xiaoning.wang@nxp.com \
    --cc=yisen.zhuang@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.