From: Pekka Enberg Date: Wed, 7 Apr 2010 16:23:41 +0000 (+0300) Subject: slub: Fix kmem_ptr_validate() for non-kernel pointers X-Git-Tag: v2.6.34-rc4~14 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d3e06e2b15590b70ea73733fc4612e4741ff46e0;p=platform%2Fkernel%2Flinux-exynos.git slub: Fix kmem_ptr_validate() for non-kernel pointers As suggested by Linus, fix up kmem_ptr_validate() to handle non-kernel pointers more graciously. The patch changes kmem_ptr_validate() to use the newly introduced kern_ptr_validate() helper to check that a pointer is a valid kernel pointer before we attempt to convert it into a 'struct page'. Cc: Andrew Morton Cc: Ingo Molnar Cc: Matt Mackall Cc: Nick Piggin Signed-off-by: Pekka Enberg Acked-by: Christoph Lameter Acked-by: David Rientjes Signed-off-by: Linus Torvalds --- diff --git a/mm/slub.c b/mm/slub.c index b364844..7d6c8b1 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -2386,6 +2386,9 @@ int kmem_ptr_validate(struct kmem_cache *s, const void *object) { struct page *page; + if (!kern_ptr_validate(object, s->size)) + return 0; + page = get_object_page(object); if (!page || s != page->slab)