[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <Pine.LNX.4.64.0806011208480.13090@sbz-30.cs.Helsinki.FI>
Date: Sun, 1 Jun 2008 12:13:02 +0300 (EEST)
From: Pekka J Enberg <penberg@...helsinki.fi>
To: Paul Mundt <lethal@...ux-sh.org>
cc: David Howells <dhowells@...hat.com>,
Christoph Lameter <clameter@....com>,
LKML <linux-kernel@...r.kernel.org>, cooloney@...nel.org,
akpm@...ux-foundation.org, mpm@...enic.com
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);
}
/*
--
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