diff --git a/mm/util.c b/mm/util.c index bacabe446906..ea09dd33ab59 100644 --- a/mm/util.c +++ b/mm/util.c @@ -594,8 +594,10 @@ void *kvmalloc_node(size_t size, gfp_t flags, int node) return ret; /* Don't even allow crazy sizes */ - if (WARN_ON_ONCE(size > INT_MAX)) + if (unlikely(size > INT_MAX)) { + WARN_ON_ONCE(!(flags & __GFP_NOWARN)); return NULL; + } return __vmalloc_node(size, 1, flags, node, __builtin_return_address(0));