diff --git a/[refs] b/[refs] index f507c964f238..8c59bdf655b9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5a622f2d0f86b316b07b55a4866ecb5518dd1cf7 +refs/heads/master: 294a80a8ed004b383ab214837e1c05ca4098a717 diff --git a/trunk/mm/slub.c b/trunk/mm/slub.c index 9acb413858ac..b9f37cb0f2e6 100644 --- a/trunk/mm/slub.c +++ b/trunk/mm/slub.c @@ -2558,8 +2558,12 @@ size_t ksize(const void *object) if (unlikely(object == ZERO_SIZE_PTR)) return 0; - page = get_object_page(object); + page = virt_to_head_page(object); BUG_ON(!page); + + if (unlikely(!PageSlab(page))) + return PAGE_SIZE << compound_order(page); + s = page->slab; BUG_ON(!s);