diff options
author | Kirill A. Shutemov <kirill.shutemov@linux.intel.com> | 2015-03-24 12:31:40 +1030 |
---|---|---|
committer | Rusty Russell <rusty@rustcorp.com.au> | 2015-03-24 12:32:37 +1030 |
commit | cc9e605dc6cb2e32fedae4ac2f61ad3b5f8d623d (patch) | |
tree | cdc55e6352c7cb5766f3784ef867165ad5dc7737 | |
parent | 7b63c3ab9b10b8a9cdc6b3a9e0e3d6a8a5d28970 (diff) | |
download | op-kernel-dev-cc9e605dc6cb2e32fedae4ac2f61ad3b5f8d623d.zip op-kernel-dev-cc9e605dc6cb2e32fedae4ac2f61ad3b5f8d623d.tar.gz |
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>
-rw-r--r-- | kernel/module.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/module.c b/kernel/module.c index 3ab942f..65bd206 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; |