From: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Date: Tue, 24 Mar 2015 02:01:40 +0000 (+1030)
Subject: module: do not print allocation-fail warning on bogus user buffer size
X-Git-Tag: firefly_0821_release~176^2~1887^2~16
X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=cc9e605dc6cb2e32fedae4ac2f61ad3b5f8d623d;p=firefly-linux-kernel-4.4.55.git

module: do not print allocation-fail warning on bogus user buffer size

init_module(2) passes user-specified buffer length directly to
vmalloc(). It makes warn_alloc_failed() to print out a lot of info into
dmesg if user specified insane size, like -1.

Let's silence the warning. It doesn't add much value to -ENOMEM return
code. Without the patch the syscall is prohibitive noisy for testing
with trinity.

Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Dave Jones <davej@codemonkey.org.uk>
Cc: Sasha Levin <sasha.levin@oracle.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
---

diff --git a/kernel/module.c b/kernel/module.c
index 3ab942f78760..65bd206e04a9 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -2494,7 +2494,8 @@ static int copy_module_from_user(const void __user *umod, unsigned long len,
 		return err;
 
 	/* Suck in entire file: we'll want most of it. */
-	info->hdr = vmalloc(info->len);
+	info->hdr = __vmalloc(info->len,
+			GFP_KERNEL | __GFP_HIGHMEM | __GFP_NOWARN, PAGE_KERNEL);
 	if (!info->hdr)
 		return -ENOMEM;