lkml.org 
[lkml]   [2008]   [Jun]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [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);
}

/*

\
 
 \ /
  Last update: 2008-06-01 11:15    [from the cache]
©2003-2011 Jasper Spaans