From 7cd20e1790dcc4bb7981e9cbc616dbb87da9f3d4 Mon Sep 17 00:00:00 2001 From: Paul Mundt Date: Thu, 12 Jun 2008 16:29:55 +0900 Subject: [PATCH] --- yaml --- r: 98025 b: refs/heads/master c: 5a1603be58f11edb1b30cb1e40cfbdd4439289d0 h: refs/heads/master i: 98023: f42e7e5e3cda70cb0dc307f2c2d628caa4cfe81a v: v3 --- [refs] | 2 +- trunk/mm/nommu.c | 21 +++------------------ 2 files changed, 4 insertions(+), 19 deletions(-) diff --git a/[refs] b/[refs] index ae83daf6d135..a4bc670599f8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f969c5672b16b857e5231ad3c78f08d8ef3305aa +refs/heads/master: 5a1603be58f11edb1b30cb1e40cfbdd4439289d0 diff --git a/trunk/mm/nommu.c b/trunk/mm/nommu.c index 3abd0845bda4..4462b6a3fcb9 100644 --- a/trunk/mm/nommu.c +++ b/trunk/mm/nommu.c @@ -104,21 +104,15 @@ EXPORT_SYMBOL(vmtruncate); unsigned int kobjsize(const void *objp) { struct page *page; - int order = 0; /* * If the object we have should not have ksize performed on it, * return size of 0 */ - if (!objp) - return 0; - - if ((unsigned long)objp >= memory_end) + if (!objp || !virt_addr_valid(objp)) return 0; page = virt_to_head_page(objp); - if (!page) - return 0; /* * If the allocator sets PageSlab, we know the pointer came from @@ -129,18 +123,9 @@ unsigned int kobjsize(const void *objp) /* * The ksize() function is only guaranteed to work for pointers - * returned by kmalloc(). So handle arbitrary pointers, that we expect - * always to be compound pages, here. - */ - if (PageCompound(page)) - order = compound_order(page); - - /* - * Finally, handle arbitrary pointers that don't set PageSlab. - * Default to 0-order in the case when we're unable to ksize() - * the object. + * returned by kmalloc(). So handle arbitrary pointers here. */ - return PAGE_SIZE << order; + return PAGE_SIZE << compound_order(page); } /*