Messages in this thread | | | Date | Mon, 6 Mar 2006 23:52:01 +0100 | From | "Jesper Juhl" <> | Subject | Re: Slab corruption in 2.6.16-rc5-mm2 |
| |
On 3/6/06, Linus Torvalds <torvalds@osdl.org> wrote: > > Ok, > I have a new favorite suspect. > Heh, you are coming up with stuff to test faster than I can build & boot kernels ;-) Which is good, we'll get to the bottom of this all the faster :)
> It is this one: commit 4d268eba1187ef66844a6a33b9431e5d0dadd4ad: > [--snip--] > > Now, maybe I'm just off my rocker again (I've certainly been batting 0.000 > so far, even if I think I've been finding real bugs). So who knows. But I > get the feeling that that patch is broken. > > Either revert it, or try this (TOTALLY UNTESTED!!!) patch.. > Hmm, that patch doesn't apply at all to 2.6.16-rc5-mm2 :/
patching file mm/slab.c Hunk #1 FAILED at 1628. 1 out of 1 hunk FAILED -- saving rejects to file mm/slab.c.rej
$ cat mm/slab.c.rej *************** *** 1628,1649 **** size_t size, size_t align, unsigned long flags) { size_t left_over = 0; - int gfporder;
- for (gfporder = 0 ; gfporder < MAX_GFP_ORDER; gfporder++) { unsigned int num; size_t remainder;
- cache_estimate(gfporder, size, align, flags, &remainder, &num); if (!num) continue; - /* More than offslab_limit objects will cause problems */ - if ((flags & CFLGS_OFF_SLAB) && num > offslab_limit) break;
cachep->num = num; - cachep->gfporder = gfporder; left_over = remainder;
/* --- 1628,1652 ---- size_t size, size_t align, unsigned long flags) { size_t left_over = 0;
+ for (;; cachep->gfporder++) { unsigned int num; size_t remainder;
+ if (cachep->gfporder > MAX_GFP_ORDER) { + cachep->num = 0; + break; + } + + cache_estimate(cachep->gfporder, size, align, flags, + &remainder, &num); if (!num) continue; /* More than offslab_limit objects will cause problems */ + if (flags & CFLGS_OFF_SLAB && cachep->num > offslab_limit) break;
cachep->num = num; left_over = remainder;
/*
> And hey, maybe I'm just crazy. > Somehow I don't think that's the core problem here ;)
-- Jesper Juhl <jesper.juhl@gmail.com> Don't top-post http://www.catb.org/~esr/jargon/html/T/top-post.html Plain text mails only, please http://www.expita.com/nomime.html - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |