Re: [PATCH v2 1/2] kernel.h: Update comment about simple_strto<foo>() functions

From: Andy Shevchenko
Date: Wed Jul 03 2019 - 10:37:35 EST


On Wed, Jun 26, 2019 at 01:00:45PM +0200, Geert Uytterhoeven wrote:
> Hi Andy,
>
> On Wed, Jun 26, 2019 at 11:39 AM Andy Shevchenko
> <andriy.shevchenko@xxxxxxxxxxxxxxx> wrote:
> > There were discussions in the past about use cases for
> > simple_strto<foo>() functions and in some rare cases they have a benefit
> > on kstrto<foo>() ones.
>
> over

Will fix.

> > Update a comment to reduce confusing about special use cases.
>
> confusion

Will fix.

> > Suggested-by: Miguel Ojeda <miguel.ojeda.sandonis@xxxxxxxxx>
> > Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
>
> > --- a/include/linux/kernel.h
> > +++ b/include/linux/kernel.h
>
> > @@ -437,7 +435,15 @@ static inline int __must_check kstrtos32_from_user(const char __user *s, size_t
> > return kstrtoint_from_user(s, count, base, res);
> > }
> >
> > -/* Obsolete, do not use. Use kstrto<foo> instead */
> > +/*
> > + * Use kstrto<foo> instead.
> > + *
> > + * NOTE: The simple_strto<foo> does not check for overflow and,
> > + * depending on the input, may give interesting results.
> > + *
> > + * Use these functions if and only if the code will need in place
> > + * conversion and otherwise looks very ugly. Keep in mind above caveat.
>
> What do you mean by "in place conversion"?
> The input buffer is const, and not modified by the callee.
> Do you mean that these functions do not require NUL termination (just
> after the number), and the characters making up the number don't have to
> be copied to a separate buffer to make them NUL-terminated?

The second one, could you propose better wording for that?

> > + */
> >
> > extern unsigned long simple_strtoul(const char *,char **,unsigned int);
> > extern long simple_strtol(const char *,char **,unsigned int);
>
> Yeah, they're still very useful.

Thanks for review.

--
With Best Regards,
Andy Shevchenko