Re: [PATCH next v2 1/3] ethtool: Implement ethtool_puts()

From: Justin Stitt
Date: Thu Oct 26 2023 - 18:10:19 EST


On Thu, Oct 26, 2023 at 3:02 PM Vladimir Oltean <olteanv@xxxxxxxxx> wrote:
>
> Hi Justin,
>
> On Thu, Oct 26, 2023 at 09:56:07PM +0000, Justin Stitt wrote:
> > 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@xxxxxxxxxx>
> > ---
> > 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 */
>
> Maybe this is due to an incorrect rebase conflict resolution, but you
> shouldn't have touched any of the ethtool force speed maps.

Ah, I did have a conflict and resolved by simply moving the hunks
out of each other's way. Trivial resolution.

Should I undo this? I want my patch against next since it's targeting
some stuff in-flight over there. BUT, I also want ethtool_puts() to be
directly below ethtool_sprintf() in the source code. What to do?

>
> Please wait for at least 24 hours to pass before posting a new version,
> to allow for more comments to come in.

Ok :)

Thanks
Justin