|
Message-ID: <20180116210313.GA7791@bombadil.infradead.org> Date: Tue, 16 Jan 2018 13:03:13 -0800 From: Matthew Wilcox <willy@...radead.org> To: Christopher Lameter <cl@...ux.com> Cc: Kees Cook <keescook@...omium.org>, linux-kernel@...r.kernel.org, David Windsor <dave@...lcore.net>, Pekka Enberg <penberg@...nel.org>, David Rientjes <rientjes@...gle.com>, Joonsoo Kim <iamjoonsoo.kim@....com>, Andrew Morton <akpm@...ux-foundation.org>, linux-mm@...ck.org, linux-xfs@...r.kernel.org, Linus Torvalds <torvalds@...ux-foundation.org>, Alexander Viro <viro@...iv.linux.org.uk>, Andy Lutomirski <luto@...nel.org>, Christoph Hellwig <hch@...radead.org>, "David S. Miller" <davem@...emloft.net>, Laura Abbott <labbott@...hat.com>, Mark Rutland <mark.rutland@....com>, "Martin K. Petersen" <martin.petersen@...cle.com>, Paolo Bonzini <pbonzini@...hat.com>, Christian Borntraeger <borntraeger@...ibm.com>, Christoffer Dall <christoffer.dall@...aro.org>, Dave Kleikamp <dave.kleikamp@...cle.com>, Jan Kara <jack@...e.cz>, Luis de Bethencourt <luisbg@...nel.org>, Marc Zyngier <marc.zyngier@....com>, Rik van Riel <riel@...hat.com>, Matthew Garrett <mjg59@...gle.com>, linux-fsdevel@...r.kernel.org, linux-arch@...r.kernel.org, netdev@...r.kernel.org, kernel-hardening@...ts.openwall.com Subject: Re: kmem_cache_attr (was Re: [PATCH 04/36] usercopy: Prepare for usercopy whitelisting) On Tue, Jan 16, 2018 at 12:17:01PM -0600, Christopher Lameter wrote: > Draft patch of how the data structs could change. kmem_cache_attr is read > only. Looks good. Although I would add Kees' user feature: struct kmem_cache_attr { char name[16]; unsigned int size; unsigned int align; + unsigned int useroffset; + unsigned int usersize; slab_flags_t flags; kmem_cache_ctor ctor; } And I'd start with +struct kmem_cache *kmem_cache_create_attr(const kmem_cache_attr *); leaving the old kmem_cache_create to kmalloc a kmem_cache_attr and initialise it. Can we also do something like this? -#define KMEM_CACHE(__struct, __flags) kmem_cache_create(#__struct,\ - sizeof(struct __struct), __alignof__(struct __struct),\ - (__flags), NULL) +#define KMEM_CACHE(__struct, __flags) ({ \ + const struct kmem_cache_attr kca ## __stringify(__struct) = { \ + .name = #__struct, \ + .size = sizeof(struct __struct), \ + .align = __alignof__(struct __struct), \ + .flags = (__flags), \ + }; \ + kmem_cache_create_attr(&kca ## __stringify(__struct)); \ +}) That way we won't need to convert any of those users.
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.