diff options
Diffstat (limited to 'arch/x86/kernel/module.c')
| -rw-r--r-- | arch/x86/kernel/module.c | 17 | 
1 files changed, 4 insertions, 13 deletions
diff --git a/arch/x86/kernel/module.c b/arch/x86/kernel/module.c index 8f295609173..ab23f1ad4bf 100644 --- a/arch/x86/kernel/module.c +++ b/arch/x86/kernel/module.c @@ -37,20 +37,11 @@  void *module_alloc(unsigned long size)  { -	struct vm_struct *area; - -	if (!size) -		return NULL; -	size = PAGE_ALIGN(size); -	if (size > MODULES_LEN) +	if (PAGE_ALIGN(size) > MODULES_LEN)  		return NULL; - -	area = __get_vm_area(size, VM_ALLOC, MODULES_VADDR, MODULES_END); -	if (!area) -		return NULL; - -	return __vmalloc_area(area, GFP_KERNEL | __GFP_HIGHMEM, -					PAGE_KERNEL_EXEC); +	return __vmalloc_node_range(size, 1, MODULES_VADDR, MODULES_END, +				GFP_KERNEL | __GFP_HIGHMEM, PAGE_KERNEL_EXEC, +				-1, __builtin_return_address(0));  }  /* Free memory returned from module_alloc */  |