Re: lib/idr.c: initialize struct idr_layer

From: Vegard Nossum
Date: Sun Jan 27 2008 - 16:30:26 EST


On Jan 27, 2008 10:21 PM, Pekka J Enberg <penberg@xxxxxxxxxxxxxx> wrote:
> On Sun, 27 Jan 2008, Vegard Nossum wrote:
> > Though in this case, idr_pre_get() actually *is* called first. Hmm...
> > I think there's a pretty big chance that kmemcheck is at fault :-(
>
> Depends on how you track object initialization. An object returned by
> kmem_cache_alloc() is always initialized if the cache it comes from has a
> constructor.

I think there's a pretty big chance I'm wrong (or misunderstanding
something) here, so I'll just ask:
setup_object() from mm/slub.c is what calls the ctor. Shouldn't this
be called from slab_alloc() as well? (I'm marking the data
"uninitialized" there before returning the object.) Otherwise you
might get back an object that is initialized with the previous owner's
data. Or is this intentional?

Thanks.

Vegard
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/