On Wed, Jan 10, 2018 at 10:28 AM, Christopher Lameter <cl@xxxxxxxxx> wrote: > 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. Good idea; I've done this now. > Rest looks ok. > > Acked-by: Christoph Lameter <cl@xxxxxxxxx> Thanks! -Kees -- Kees Cook Pixel Security