|
@@ -2865,7 +2865,6 @@ static inline void verify_redzone_free(struct kmem_cache *cache, void *obj)
|
|
|
static void *cache_free_debugcheck(struct kmem_cache *cachep, void *objp,
|
|
|
unsigned long caller)
|
|
|
{
|
|
|
- struct page *page;
|
|
|
unsigned int objnr;
|
|
|
struct slab *slabp;
|
|
|
|
|
@@ -2873,9 +2872,7 @@ static void *cache_free_debugcheck(struct kmem_cache *cachep, void *objp,
|
|
|
|
|
|
objp -= obj_offset(cachep);
|
|
|
kfree_debugcheck(objp);
|
|
|
- page = virt_to_head_page(objp);
|
|
|
-
|
|
|
- slabp = page->slab_page;
|
|
|
+ slabp = virt_to_slab(objp);
|
|
|
|
|
|
if (cachep->flags & SLAB_RED_ZONE) {
|
|
|
verify_redzone_free(cachep, objp);
|
|
@@ -3087,7 +3084,7 @@ static void *cache_alloc_debugcheck_after(struct kmem_cache *cachep,
|
|
|
struct slab *slabp;
|
|
|
unsigned objnr;
|
|
|
|
|
|
- slabp = virt_to_head_page(objp)->slab_page;
|
|
|
+ slabp = virt_to_slab(objp);
|
|
|
objnr = (unsigned)(objp - slabp->s_mem) / cachep->size;
|
|
|
slab_bufctl(slabp)[objnr] = BUFCTL_ACTIVE;
|
|
|
}
|