On Wed, Jan 10, 2018 at 12:28:23PM -0600, Christopher Lameter wrote:
On Tue, 9 Jan 2018, Kees Cook wrote:
quoted
+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.
Obviously I agree with you. I'm inclined to not let that delay Kees'
patches; we can fix the few places that use this API later. At this
point, my proposal for the ultimate form would be:
struct kmem_cache_attr {
const char name[32];
void (*ctor)(void *);
unsigned int useroffset;
unsigned int user_size;
};
kmem_create_cache_attr(const struct kmem_cache_attr *attr, unsigned int size,
unsigned int align, slab_flags_t flags)
(my rationale is that everything in attr should be const, but size, align
and flags all get modified by the slab code).
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>