Re: [PATCH v2] staging: lustre: llite: Fix variable length array warning
From: Guru Das Srinagesh
Date: Sun May 07 2017 - 19:59:55 EST
On Sun, May 07, 2017 at 04:24:51PM -0700, Joe Perches wrote:
> On Sun, 2017-05-07 at 02:23 -0700, Guru Das Srinagesh wrote:
> > Fix sparse warning "warning: Variable length array is used." by using
> > kmalloc_array to allocate the required amount of memory instead and
> > kfree to deallocate memory after use.
> []
> > diff --git a/drivers/staging/lustre/lustre/llite/xattr.c b/drivers/staging/lustre/lustre/llite/xattr.c
> []
> > @@ -86,13 +86,17 @@ ll_xattr_set_common(const struct xattr_handler *handler,
> > const char *name, const void *value, size_t size,
> > int flags)
> > {
> > - char fullname[strlen(handler->prefix) + strlen(name) + 1];
> > + int fullname_len = strlen(handler->prefix) + strlen(name) + 1;
> > + char *fullname = kmalloc_array(fullname_len, sizeof(char), GFP_KERNEL);
>
> Are you sure about using GFP_KERNEL and that sleeping is
> allowed for this function allocation?
>
I'm not sure about that. Would GFP_ATOMIC be a better flag to use?