[PATCH next v2 1/3] ethtool: Implement ethtool_puts()
Justin Stitt
justinstitt at google.com
Thu Oct 26 15:11:28 PDT 2023
On Thu, Oct 26, 2023 at 3:09 PM Justin Stitt <justinstitt at google.com> wrote:
>
> On Thu, Oct 26, 2023 at 3:02 PM Vladimir Oltean <olteanv at gmail.com> 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 at 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 */
> >
> > 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?
Oh, I just realized my auto formatter had a field day with that function.
I will rectify this in a new version after waiting 24hrs for comments to
trickle in as well.
>
> >
> > 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
Thanks
Justin
More information about the Linux-mediatek
mailing list