diff options
author | Pekka Enberg <penberg@cs.helsinki.fi> | 2008-05-22 18:22:25 +0200 |
---|---|---|
committer | Pekka Enberg <penberg@cs.helsinki.fi> | 2008-05-22 18:52:18 +0200 |
commit | 76994412f8e824e79a593d6777ec327d85f942b2 (patch) | |
tree | 9acd5883a43daf1bf21ab23608915c1181fd2008 /mm | |
parent | slob: Fix to return wrong pointer (diff) | |
download | linux-76994412f8e824e79a593d6777ec327d85f942b2.tar.xz linux-76994412f8e824e79a593d6777ec327d85f942b2.zip |
slub: ksize() abuse checks
Add a WARN_ON for pages that don't have PageSlab nor PageCompound set to catch
the worst abusers of ksize() in the kernel.
Acked-by: Christoph Lameter <clameter@sgi.com>
Cc: Matt Mackall <mpm@selenic.com>
Signed-off-by: Pekka Enberg <penberg@cs.helsinki.fi>
Diffstat (limited to 'mm')
-rw-r--r-- | mm/slub.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/mm/slub.c b/mm/slub.c index a505a828ef41..0987d1cd943c 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -2726,9 +2726,10 @@ size_t ksize(const void *object) page = virt_to_head_page(object); - if (unlikely(!PageSlab(page))) + if (unlikely(!PageSlab(page))) { + WARN_ON(!PageCompound(page)); return PAGE_SIZE << compound_order(page); - + } s = page->slab; #ifdef CONFIG_SLUB_DEBUG |