diff options
Diffstat (limited to 'arch/parisc/kernel/module.c')
| -rw-r--r-- | arch/parisc/kernel/module.c | 10 | 
1 files changed, 9 insertions, 1 deletions
diff --git a/arch/parisc/kernel/module.c b/arch/parisc/kernel/module.c index 6e81bb596e5..cedbbb8b18d 100644 --- a/arch/parisc/kernel/module.c +++ b/arch/parisc/kernel/module.c @@ -61,8 +61,10 @@  #include <linux/string.h>  #include <linux/kernel.h>  #include <linux/bug.h> +#include <linux/mm.h>  #include <linux/slab.h> +#include <asm/pgtable.h>  #include <asm/unwind.h>  #if 0 @@ -214,7 +216,13 @@ void *module_alloc(unsigned long size)  {  	if (size == 0)  		return NULL; -	return vmalloc(size); +	/* using RWX means less protection for modules, but it's +	 * easier than trying to map the text, data, init_text and +	 * init_data correctly */ +	return __vmalloc_node_range(size, 1, VMALLOC_START, VMALLOC_END, +				    GFP_KERNEL | __GFP_HIGHMEM, +				    PAGE_KERNEL_RWX, -1, +				    __builtin_return_address(0));  }  #ifndef CONFIG_64BIT  |