|
Message-ID: <a0b69045-f6c4-0290-1c59-4dd75b05ee25@intel.com> Date: Tue, 23 Apr 2019 13:36:28 -0700 From: Dave Hansen <dave.hansen@...el.com> To: Alexander Potapenko <glider@...gle.com>, akpm@...ux-foundation.org, cl@...ux.com, dvyukov@...gle.com, keescook@...omium.org, labbott@...hat.com Cc: linux-mm@...ck.org, linux-security-module@...r.kernel.org, kernel-hardening@...ts.openwall.com Subject: Re: [PATCH 1/3] mm: security: introduce the init_allocations=1 boot option On 4/18/19 8:42 AM, Alexander Potapenko wrote: > +static void poison_dont(struct kmem_cache *c, void *object) > +{ > + /* Do nothing. Use for caches with constructors. */ > +} > + > static struct kmem_cache *create_cache(const char *name, > unsigned int object_size, unsigned int align, > slab_flags_t flags, unsigned int useroffset, > @@ -381,6 +391,10 @@ static struct kmem_cache *create_cache(const char *name, > s->size = s->object_size = object_size; > s->align = align; > s->ctor = ctor; > + if (ctor) > + s->poison_fn = poison_dont; > + else > + s->poison_fn = poison_zero; > s->useroffset = useroffset; > s->usersize = usersize; > > @@ -974,6 +988,7 @@ void __init create_boot_cache(struct kmem_cache *s, const char *name, > s->align = calculate_alignment(flags, ARCH_KMALLOC_MINALIGN, size); > s->useroffset = useroffset; > s->usersize = usersize; > + s->poison_fn = poison_zero; An empty indirect call is probably a pretty bad idea on systems with retpoline. Isn't this just a bool anyway for either calling poison_dont or poison_zero? Can it call anything else?
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.