diff --git a/[refs] b/[refs] index 6851eaa7f627..1cec8e99768b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: fbe9c9612930e0604dc99ef2da7e063fa3278817 +refs/heads/master: 8ffa68755a0eddf3baeecd0e7612a5106cf2db23 diff --git a/trunk/mm/slub.c b/trunk/mm/slub.c index 3e5aefcb4075..238c5a6ee896 100644 --- a/trunk/mm/slub.c +++ b/trunk/mm/slub.c @@ -2435,6 +2435,7 @@ void __init kmem_cache_init(void) */ create_kmalloc_cache(&kmalloc_caches[0], "kmem_cache_node", sizeof(struct kmem_cache_node), GFP_KERNEL); + kmalloc_caches[0].refcount = -1; #endif /* Able to allocate the per node structures */ @@ -2482,6 +2483,12 @@ static int slab_unmergeable(struct kmem_cache *s) if (s->ctor) return 1; + /* + * We may have set a slab to be unmergeable during bootstrap. + */ + if (s->refcount < 0) + return 1; + return 0; }