diff --git a/mm/slab.h b/mm/slab.h index ad457ec12..c17182db8 100755 --- a/mm/slab.h +++ b/mm/slab.h @@ -478,9 +478,13 @@ static inline struct kmem_cache *virt_to_cache(const void *obj) struct page *page; page = virt_to_head_page(obj); +#ifdef CONFIG_BUG_ON_DATA_CORRUPTION + BUG_ON(!PageSlab(page)); +#else if (WARN_ONCE(!PageSlab(page), "%s: Object is not a Slab page!\n", __func__)) return NULL; +#endif return page->slab_cache; }