Messages in this thread Patch in this message | | | Date | Sun, 1 Jun 2008 12:13:02 +0300 (EEST) | From | Pekka J Enberg <> | Subject | Re: [PATCH] nommu: fix kobjsize() for SLOB and SLUB |
| |
Hi Paul,
On Sun, 1 Jun 2008, Paul Mundt wrote: > 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.
I was about to send a patch that fixes some of the kobjsize() abuses to use ksize() but then I realized that what we probably should do is something like this instead.
I mean, assuming the BUG_ON bits are bogus, then we should always pass the pointer to the allocator. I audited most of the callers and they all seem to be really just using kmalloc() for allocation anyway.
What do you think?
Pekka
diff --git a/mm/nommu.c b/mm/nommu.c index dca93fc..fc1ff52 100644 --- a/mm/nommu.c +++ b/mm/nommu.c @@ -103,22 +103,20 @@ EXPORT_SYMBOL(vmtruncate); */ unsigned int kobjsize(const void *objp) { - struct page *page; - /* * 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 (PageSlab(page)) - return ksize(objp); + if ((unsigned long)objp >= memory_end) + return 0; - BUG_ON(page->index < 0); - BUG_ON(page->index >= MAX_ORDER); + if (!virt_to_page(objp)) + return 0; - return (PAGE_SIZE << page->index); + return ksize(objp); } /*
| |