|
@@ -255,7 +255,7 @@ struct kmem_cache *find_mergeable(size_t size, size_t align,
|
|
|
{
|
|
|
struct kmem_cache *s;
|
|
|
|
|
|
- if (slab_nomerge || (flags & SLAB_NEVER_MERGE))
|
|
|
+ if (slab_nomerge)
|
|
|
return NULL;
|
|
|
|
|
|
if (ctor)
|
|
@@ -266,6 +266,9 @@ struct kmem_cache *find_mergeable(size_t size, size_t align,
|
|
|
size = ALIGN(size, align);
|
|
|
flags = kmem_cache_flags(size, flags, name, NULL);
|
|
|
|
|
|
+ if (flags & SLAB_NEVER_MERGE)
|
|
|
+ return NULL;
|
|
|
+
|
|
|
list_for_each_entry_reverse(s, &slab_caches, list) {
|
|
|
if (slab_unmergeable(s))
|
|
|
continue;
|