On Thu, 30 Aug 2018 12:44:36 -0700 Eric Biggers <ebigg...@kernel.org> wrote:

> From: Eric Biggers <ebigg...@google.com>
> 
> This simplifies the code.  No change in behavior.
> 
> ...
>
> --- a/lib/parser.c
> +++ b/lib/parser.c
> @@ -327,10 +327,6 @@ EXPORT_SYMBOL(match_strlcpy);
>   */
>  char *match_strdup(const substring_t *s)
>  {
> -     size_t sz = s->to - s->from + 1;
> -     char *p = kmalloc(sz, GFP_KERNEL);
> -     if (p)
> -             match_strlcpy(p, s, sz);
> -     return p;
> +     return kmemdup_nul(s->from, s->to - s->from, GFP_KERNEL);
>  }
>  EXPORT_SYMBOL(match_strdup);

Huh.  I never noticed kmemdup_nul() fly past - it rather happened on
the sly.  We do have some fun goodies in there.

We could make match_strdup() an inline now.  But that will probably
produce a fatter kernel, as each callsite would then need to prepare
three args rather than one.

Reply via email to