diff --git a/mm/slub.c b/mm/slub.c index 9fb892b6afe30c4754d25274c9b5866da127c7c7..0996b3be751a8c79b2c71b529e1bfe892417ef96 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -1631,7 +1631,8 @@ static void *__slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node, c->page = new; goto load_freelist; } - slab_out_of_memory(s, gfpflags, node); + if (!(gfpflags & __GFP_NOWARN) && printk_ratelimit()) + slab_out_of_memory(s, gfpflags, node); return NULL; debug: if (!alloc_debug_processing(s, c->page, object, addr))