Re: [PATCH v4 2/2] slab: Introduce kmalloc_obj() and family
From: Kees Cook
Date: Sat Mar 15 2025 - 14:39:26 EST
On Sat, Mar 15, 2025 at 03:48:30PM +1030, Gustavo A. R. Silva wrote:
>
> > These each return the assigned value of ptr (which may be NULL on
> > failure). For cases where the total size of the allocation is needed,
> > the kmalloc_obj_sz(), kmalloc_objs_sz(), and kmalloc_flex_sz() family
> > of macros can be used. For example:
> >
> > info->size = struct_size(ptr, flex_member, count);
> > ptr = kmalloc(info->size, gfp);
> >
> > becomes:
> >
> > kmalloc_flex_sz(ptr, flex_member, count, gfp, &info->size);
>
> I wonder if it'd be better to keep the gfp flags as the last argument
> for all these `*_sz()` cases:
>
> kmalloc_flex_sz(ptr, flex_member, count, &info->size, gpf);
>
> Probably, even for __alloc_objs()
I was following the pattern of the other "alternative helpers", like
kmalloc_node(), which adds the additional argument to the end. I have no
real opinion about it, so I defer to the slab developers. :)
-Kees
--
Kees Cook