aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/module.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/module.c')
-rw-r--r--arch/x86/kernel/module.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/arch/x86/kernel/module.c b/arch/x86/kernel/module.c
index b92fbcf48609..894bb718a6fb 100644
--- a/arch/x86/kernel/module.c
+++ b/arch/x86/kernel/module.c
@@ -34,14 +34,6 @@
34#define DEBUGP(fmt...) 34#define DEBUGP(fmt...)
35#endif 35#endif
36 36
37#if defined(CONFIG_UML) || defined(CONFIG_X86_32)
38void *module_alloc(unsigned long size)
39{
40 if (size == 0)
41 return NULL;
42 return vmalloc_exec(size);
43}
44#else /*X86_64*/
45void *module_alloc(unsigned long size) 37void *module_alloc(unsigned long size)
46{ 38{
47 struct vm_struct *area; 39 struct vm_struct *area;
@@ -56,9 +48,9 @@ void *module_alloc(unsigned long size)
56 if (!area) 48 if (!area)
57 return NULL; 49 return NULL;
58 50
59 return __vmalloc_area(area, GFP_KERNEL, PAGE_KERNEL_EXEC); 51 return __vmalloc_area(area, GFP_KERNEL | __GFP_HIGHMEM,
52 PAGE_KERNEL_EXEC);
60} 53}
61#endif
62 54
63/* Free memory returned from module_alloc */ 55/* Free memory returned from module_alloc */
64void module_free(struct module *mod, void *module_region) 56void module_free(struct module *mod, void *module_region)