mm: Silence vmap() allocation failures based on caller gfp_flags
authorFlorian Fainelli <f.fainelli@gmail.com>
Thu, 27 Apr 2017 18:19:00 +0000 (11:19 -0700)
committerCatalin Marinas <catalin.marinas@arm.com>
Thu, 11 May 2017 13:41:26 +0000 (14:41 +0100)
If the caller has set __GFP_NOWARN don't print the following message:
vmap allocation for size 15736832 failed: use vmalloc=<size> to increase
size.

This can happen with the ARM/Linux or ARM64/Linux module loader built
with CONFIG_ARM{,64}_MODULE_PLTS=y which does a first attempt at loading
a large module from module space, then falls back to vmalloc space.

Acked-by: Michal Hocko <mhocko@suse.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
mm/vmalloc.c

index 0b057628a7ba5c45d722710082ce32df3f7e8e13..b74f1d01ef76f4db4a991ee1d8e88de684c01069 100644 (file)
@@ -521,7 +521,7 @@ overflow:
                }
        }
 
-       if (printk_ratelimit())
+       if (!(gfp_mask & __GFP_NOWARN) && printk_ratelimit())
                pr_warn("vmap allocation for size %lu failed: use vmalloc=<size> to increase size\n",
                        size);
        kfree(va);