diff options
author | Pekka Enberg <penberg@cs.helsinki.fi> | 2008-05-22 12:22:25 -0400 |
---|---|---|
committer | Pekka Enberg <penberg@cs.helsinki.fi> | 2008-05-22 12:52:18 -0400 |
commit | 76994412f8e824e79a593d6777ec327d85f942b2 (patch) | |
tree | 9acd5883a43daf1bf21ab23608915c1181fd2008 | |
parent | 239f49c0800778c863585a103805c58afbad6748 (diff) |
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>
-rw-r--r-- | mm/slub.c | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -2726,9 +2726,10 @@ size_t ksize(const void *object) | |||
2726 | 2726 | ||
2727 | page = virt_to_head_page(object); | 2727 | page = virt_to_head_page(object); |
2728 | 2728 | ||
2729 | if (unlikely(!PageSlab(page))) | 2729 | if (unlikely(!PageSlab(page))) { |
2730 | WARN_ON(!PageCompound(page)); | ||
2730 | return PAGE_SIZE << compound_order(page); | 2731 | return PAGE_SIZE << compound_order(page); |
2731 | 2732 | } | |
2732 | s = page->slab; | 2733 | s = page->slab; |
2733 | 2734 | ||
2734 | #ifdef CONFIG_SLUB_DEBUG | 2735 | #ifdef CONFIG_SLUB_DEBUG |