From 55b2304919f23ff4fbb1f6788f073469641fb45c Mon Sep 17 00:00:00 2001 From: Christoph Lameter Date: Wed, 9 May 2007 02:32:37 -0700 Subject: [PATCH] --- yaml --- r: 55279 b: refs/heads/master c: abcd08a6f564171ffa05bc77d1c2ba4cfa949653 h: refs/heads/master i: 55277: 9a707699700d5edb3b50340d1f74962e9e840378 55275: 82c573dd7f97e06fe9bea00b3f2e62bfc0b4c1ae 55271: 87943a0b73f1ef15e89ad4eca584e4cde6a680e0 55263: 425b8492571d1458b0e8595eba2fc8f504ac5a30 v: v3 --- [refs] | 2 +- trunk/mm/slub.c | 13 +++---------- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/[refs] b/[refs] index 8b872342587e..36d0f942ec40 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a87615b8f9e2349f6d3770af3d72fd6a41ab4239 +refs/heads/master: abcd08a6f564171ffa05bc77d1c2ba4cfa949653 diff --git a/trunk/mm/slub.c b/trunk/mm/slub.c index beac34a5e4fd..1832ae1ea536 100644 --- a/trunk/mm/slub.c +++ b/trunk/mm/slub.c @@ -405,9 +405,8 @@ static int check_bytes(u8 *start, unsigned int value, unsigned int bytes) 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 *s, const void *object) /* 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; /*