diff options
author | Qi Zheng <zhengqi.arch@bytedance.com> | 2022-05-19 23:08:55 +0200 |
---|---|---|
committer | akpm <akpm@linux-foundation.org> | 2022-05-19 23:08:55 +0200 |
commit | 3f913fc5f9745613088d3c569778c9813ab9c129 (patch) | |
tree | c2b292958bd1ba0306f28daf2a3640b6bd4e54b4 /mm/failslab.c | |
parent | mm/page_alloc: fix tracepoint mm_page_alloc_zone_locked() (diff) | |
download | linux-3f913fc5f9745613088d3c569778c9813ab9c129.tar.xz linux-3f913fc5f9745613088d3c569778c9813ab9c129.zip |
mm: fix missing handler for __GFP_NOWARN
We expect no warnings to be issued when we specify __GFP_NOWARN, but
currently in paths like alloc_pages() and kmalloc(), there are still some
warnings printed, fix it.
But for some warnings that report usage problems, we don't deal with them.
If such warnings are printed, then we should fix the usage problems.
Such as the following case:
WARN_ON_ONCE((gfp_flags & __GFP_NOFAIL) && (order > 1));
[zhengqi.arch@bytedance.com: v2]
Link: https://lkml.kernel.org/r/20220511061951.1114-1-zhengqi.arch@bytedance.com
Link: https://lkml.kernel.org/r/20220510113809.80626-1-zhengqi.arch@bytedance.com
Signed-off-by: Qi Zheng <zhengqi.arch@bytedance.com>
Cc: Akinobu Mita <akinobu.mita@gmail.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Jiri Slaby <jirislaby@kernel.org>
Cc: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'mm/failslab.c')
-rw-r--r-- | mm/failslab.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/mm/failslab.c b/mm/failslab.c index f92fed91ac23..58df9789f1d2 100644 --- a/mm/failslab.c +++ b/mm/failslab.c @@ -30,6 +30,9 @@ bool __should_failslab(struct kmem_cache *s, gfp_t gfpflags) if (failslab.cache_filter && !(s->flags & SLAB_FAILSLAB)) return false; + if (gfpflags & __GFP_NOWARN) + failslab.attr.no_warn = true; + return should_fail(&failslab.attr, s->object_size); } |