[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.LFD.2.00.0810071053540.3208@nehalem.linux-foundation.org>
Date: Tue, 7 Oct 2008 10:57:33 -0700 (PDT)
From: Linus Torvalds <torvalds@...ux-foundation.org>
To: Matt Mackall <mpm@...enic.com>
cc: Peter Zijlstra <a.p.zijlstra@...llo.nl>,
Christoph Lameter <cl@...ux-foundation.org>,
linux-mm <linux-mm@...ck.org>,
Nick Piggin <nickpiggin@...oo.com.au>,
Ingo Molnar <mingo@...e.hu>,
linux-kernel <linux-kernel@...r.kernel.org>,
akpm <akpm@...uxfoundation.org>,
Pekka J Enberg <penberg@...helsinki.fi>
Subject: Re: [BUG] SLOB's krealloc() seems bust
On Tue, 7 Oct 2008, Matt Mackall wrote:
>
> Thanks, Peter. I know we're way late in the 2.6.27 cycle, so I'll leave
> it to Linus and Andrew to decide how to queue this up.
Well, since it seems to be clearly broken without it, I'd take it, but now
I'm kind of waiting for the resolution on whether that second "-1" is
correct or not.
>From a quick look at mm/slob.c I see Pekka's point that ->units does look
like the real size in units, not the "size plus header", and that the
second -1 may be bogus.
But I don't know the code.
Peter - can you check with that
> if (slob_page(sp))
> - return ((slob_t *)block - 1)->units + SLOB_UNIT;
> + return (((slob_t *)block - 1)->units - 1) * SLOB_UNIT;
thing using
- return ((slob_t *)block - 1)->units + SLOB_UNIT;
+ return ((slob_t *)block - 1)->units * SLOB_UNIT;
instead?
Linus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists