The patch titled Subject: mm/slab_common.c: check kmem_create_cache flags are common has been added to the -mm tree. Its filename is mm-check-kmem_create_cache-flags-are-commons.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/mm-check-kmem_create_cache-flags-are-commons.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/mm-check-kmem_create_cache-flags-are-commons.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Thomas Garnier <thgarnie@xxxxxxxxxx> Subject: mm/slab_common.c: check kmem_create_cache flags are common Verify that kmem_create_cache flags are not allocator specific. It is done before removing flags that are not available with the current configuration. Link: http://lkml.kernel.org/r/1478553075-120242-2-git-send-email-thgarnie@xxxxxxxxxx Signed-off-by: Thomas Garnier <thgarnie@xxxxxxxxxx> Cc: Christoph Lameter <cl@xxxxxxxxx> Cc: Pekka Enberg <penberg@xxxxxxxxxx> Cc: David Rientjes <rientjes@xxxxxxxxxx> Cc: Joonsoo Kim <iamjoonsoo.kim@xxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/slab.h | 15 +++++++++++++++ mm/slab_common.c | 6 ++++++ 2 files changed, 21 insertions(+) diff -puN mm/slab.h~mm-check-kmem_create_cache-flags-are-commons mm/slab.h --- a/mm/slab.h~mm-check-kmem_create_cache-flags-are-commons +++ a/mm/slab.h @@ -142,8 +142,23 @@ static inline unsigned long kmem_cache_f #define SLAB_CACHE_FLAGS (0) #endif +/* Common flags available with current configuration */ #define CACHE_CREATE_MASK (SLAB_CORE_FLAGS | SLAB_DEBUG_FLAGS | SLAB_CACHE_FLAGS) +/* Common flags permitted for kmem_cache_create */ +#define SLAB_FLAGS_PERMITTED (SLAB_CORE_FLAGS | \ + SLAB_RED_ZONE | \ + SLAB_POISON | \ + SLAB_STORE_USER | \ + SLAB_TRACE | \ + SLAB_CONSISTENCY_CHECKS | \ + SLAB_MEM_SPREAD | \ + SLAB_NOLEAKTRACE | \ + SLAB_RECLAIM_ACCOUNT | \ + SLAB_TEMPORARY | \ + SLAB_NOTRACK | \ + SLAB_ACCOUNT) + int __kmem_cache_shutdown(struct kmem_cache *); void __kmem_cache_release(struct kmem_cache *); int __kmem_cache_shrink(struct kmem_cache *); diff -puN mm/slab_common.c~mm-check-kmem_create_cache-flags-are-commons mm/slab_common.c --- a/mm/slab_common.c~mm-check-kmem_create_cache-flags-are-commons +++ a/mm/slab_common.c @@ -404,6 +404,12 @@ kmem_cache_create(const char *name, size goto out_unlock; } + /* Refuse requests with allocator specific flags */ + if (flags & ~SLAB_FLAGS_PERMITTED) { + err = -EINVAL; + goto out_unlock; + } + /* * Some allocators will constraint the set of valid flags to a subset * of all flags. We expect them to define CACHE_CREATE_MASK in this _ Patches currently in -mm which might be from thgarnie@xxxxxxxxxx are mm-check-kmem_create_cache-flags-are-commons.patch -- To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html