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() -- Gustavo