Re: mm: slub: invalid memory access in setup_object

Andrew Morton
2014-07-01T21:49:51Z

On Tue, 1 Jul 2014 09:58:52 -0500 (CDT) Christoph Lameter <cl@gentwo.org> wrote:

> On Mon, 30 Jun 2014, David Rientjes wrote:
>
> > It's not at all clear to me that that patch is correct. Wei?
>
> Looks ok to me. But I do not like the convoluted code in new_slab() which
> Wei's patch does not make easier to read. Makes it difficult for the
> reader to see whats going on.
>
> Lets drop the use of the variable named "last".
>
>
> Subject: slub: Only call setup_object once for each object
>
> Modify the logic for object initialization to be less convoluted
> and initialize an object only once.
>

Well, um. Wei's changelog was much better:

: When a kmem_cache is created with ctor, each object in the kmem_cache will
: be initialized before use. In the slub implementation, the first object
: will be initialized twice.
:
: This patch avoids the duplication of initialization of the first object.
:
: Fixes commit 7656c72b5a63: ("SLUB: add macros for scanning objects in a
: slab").

I can copy that text over and add the reported-by etc (ho hum) but I
have a tiny feeling that this patch hasn't been rigorously tested?
Perhaps someone (Wei?) can do that?

And we still don't know why Sasha's kernel went oops.