Re: [PATCH 1/6] bitmap_parselist: don't calculate length of the input string

From: Andy Shevchenko
Date: Tue Mar 26 2019 - 06:10:11 EST


On Tue, Mar 26, 2019 at 12:07:43AM +0300, Yury Norov wrote:
> bitmap_parselist() calculates length of the input string before passing
> it to the __bitmap_parselist(). But the end-of-line condition is checked
> for every character in __bitmap_parselist() anyway. So doing it in wrapper
> is a simple waste of time.

This is not best change, I think. See my further comments.

>
> Signed-off-by: Yury Norov <ynorov@xxxxxxxxxxx>
> ---
> lib/bitmap.c | 5 +----
> 1 file changed, 1 insertion(+), 4 deletions(-)
>
> diff --git a/lib/bitmap.c b/lib/bitmap.c
> index 98872e9025da..ad1fb7e6ad0e 100644
> --- a/lib/bitmap.c
> +++ b/lib/bitmap.c
> @@ -614,10 +614,7 @@ static int __bitmap_parselist(const char *buf, unsigned int buflen,
>
> int bitmap_parselist(const char *bp, unsigned long *maskp, int nmaskbits)
> {
> - char *nl = strchrnul(bp, '\n');
> - int len = nl - bp;
> -
> - return __bitmap_parselist(bp, len, 0, maskp, nmaskbits);
> + return __bitmap_parselist(bp, UINT_MAX, 0, maskp, nmaskbits);
> }
> EXPORT_SYMBOL(bitmap_parselist);
>
> --
> 2.17.1
>

--
With Best Regards,
Andy Shevchenko