On Tue, 9 Jan 2018, Kees Cook wrote: > +struct kmem_cache *kmem_cache_create_usercopy(const char *name, > + size_t size, size_t align, slab_flags_t flags, > + size_t useroffset, size_t usersize, > + void (*ctor)(void *)); Hmmm... At some point we should switch kmem_cache_create to pass a struct containing all the parameters. Otherwise the API will blow up with additional functions. > index 2181719fd907..70c4b4bb4d1f 100644 > --- a/include/linux/stddef.h > +++ b/include/linux/stddef.h > @@ -19,6 +19,8 @@ enum { > #define offsetof(TYPE, MEMBER) ((size_t)&((TYPE *)0)->MEMBER) > #endif > > +#define sizeof_field(structure, field) sizeof((((structure *)0)->field)) > + > /** > * offsetofend(TYPE, MEMBER) > * Have a separate patch for adding this functionality? Its not a slab maintainer file. Rest looks ok. Acked-by: Christoph Lameter <cl@xxxxxxxxx>