diff --git a/mm/slub.c b/mm/slub.c
index cb4c188ca0442b1c52f74584d8a995761ea5d1be..7885666fd948eabd2e216d188817199d41064c01 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -5605,7 +5605,8 @@ static void memcg_propagate_slab_attrs(struct kmem_cache *s)
 		 */
 		if (buffer)
 			buf = buffer;
-		else if (root_cache->max_attr_size < ARRAY_SIZE(mbuf))
+		else if (root_cache->max_attr_size < ARRAY_SIZE(mbuf) &&
+			 !IS_ENABLED(CONFIG_SLUB_STATS))
 			buf = mbuf;
 		else {
 			buffer = (char *) get_zeroed_page(GFP_KERNEL);