Messages in this thread | | | Date | Sun, 1 Jun 2008 17:24:27 +0900 | From | Paul Mundt <> | Subject | Re: [PATCH] nommu: fix kobjsize() for SLOB and SLUB |
| |
On Sun, Jun 01, 2008 at 11:22:04AM +0300, Pekka J Enberg wrote: > On Sun, 1 Jun 2008, Pekka Enberg wrote: > > > Not until the page->index bits are killed, otherwise you aren't fixing > > > anything. SLOB on nommu with those page->index tests will automatically > > > oops today, before or after your patches. Until that's resolved, there's > > > no point in pretending like kobjsize() has been "fixed". As no one has > > > come up with a valid reason for those tests existing in the first place, > > > simply having your patches and killing the BUG_ON()'s seems ok. > > > > Sorry if I'm starting to sound like a broken record, but can you explain why > > removing the ->index bits are safe? I mean, if removing them is really okay, > > that means we don't hit that code path with SLAB at all? > > Paul, so with something like this, the WARN_ON never triggers? > > diff --git a/mm/nommu.c b/mm/nommu.c > index dca93fc..38eec2e 100644 > --- a/mm/nommu.c > +++ b/mm/nommu.c > @@ -109,16 +109,23 @@ unsigned int kobjsize(const void *objp) > * If the object we have should not have ksize performed on it, > * return size of 0 > */ > - if (!objp || (unsigned long)objp >= memory_end || !((page = virt_to_page(objp)))) > + if (!objp) > + return 0; > + > + if ((unsigned long)objp >= memory_end) > + return 0; > + > + page = virt_to_page(objp); > + if (!page) > return 0; > This still needs to be virt_to_head_page() I think.
I don't have my nommu boards at home, so I'll test at the office tomorow morning and let you know.
| |