From: Christoph Lameter We needlessly duplicate code. Also make check_valid_pointer inline. Signed-off-by: Christoph LAemter Signed-off-by: Andrew Morton --- mm/slub.c | 13 +++---------- 1 files changed, 3 insertions(+), 10 deletions(-) diff -puN mm/slub.c~slub-use-check_valid_pointer-in-kmem_ptr_validate mm/slub.c --- a/mm/slub.c~slub-use-check_valid_pointer-in-kmem_ptr_validate +++ a/mm/slub.c @@ -400,9 +400,8 @@ static int check_bytes(u8 *start, unsign return 1; } - -static int check_valid_pointer(struct kmem_cache *s, struct page *page, - void *object) +static inline int check_valid_pointer(struct kmem_cache *s, + struct page *page, const void *object) { void *base; @@ -1796,13 +1795,7 @@ int kmem_ptr_validate(struct kmem_cache /* No slab or wrong slab */ return 0; - addr = page_address(page); - if (object < addr || object >= addr + s->objects * s->size) - /* Out of bounds */ - return 0; - - if ((object - addr) % s->size) - /* Improperly aligned */ + if (!check_valid_pointer(s, page, object)) return 0; /* _