Commit 2a48c635 authored by justinstitt@google.com's avatar justinstitt@google.com Committed by David S. Miller
Browse files

ethtool: Implement ethtool_puts()



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: default avatarJustin Stitt <justinstitt@google.com>
Reviewed-by: default avatarPrzemek Kitszel <przemyslaw.kitszel@intel.com>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Reviewed-by: default avatarMadhuri Sripada <madhuri.sripada@microchip.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 09b48947
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -1061,6 +1061,19 @@ int ethtool_get_ts_info_by_layer(struct net_device *dev, struct ethtool_ts_info
 */
extern __printf(2, 3) void ethtool_sprintf(u8 **data, const char *fmt, ...);

/**
 * ethtool_puts - Write string to ethtool string data
 * @data: Pointer to a pointer to the start of string to update
 * @str: String to write
 *
 * Write string to *data without a trailing newline. 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;
+7 −0
Original line number Diff line number Diff line
@@ -1994,6 +1994,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;