mm: remove vmalloc_exec
Merge vmalloc_exec into its only caller. Note that for !CONFIG_MMU __vmalloc_node_range maps to __vmalloc, which directly clears the __GFP_HIGHMEM added by the vmalloc_exec stub anyway. Link: http://lkml.kernel.org/r/20200618064307.32739-4-hch@lst.de Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: David Hildenbrand <david@redhat.com> Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Dexuan Cui <decui@microsoft.com> Cc: Jessica Yu <jeyu@kernel.org> Cc: Vitaly Kuznetsov <vkuznets@redhat.com> Cc: Wei Liu <wei.liu@kernel.org> Cc: Will Deacon <will@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
		
							parent
							
								
									10d5e97c1b
								
							
						
					
					
						commit
						7a0e27b2a0
					
				| @ -106,7 +106,6 @@ extern void *vzalloc(unsigned long size); | |||||||
| extern void *vmalloc_user(unsigned long size); | extern void *vmalloc_user(unsigned long size); | ||||||
| extern void *vmalloc_node(unsigned long size, int node); | extern void *vmalloc_node(unsigned long size, int node); | ||||||
| extern void *vzalloc_node(unsigned long size, int node); | extern void *vzalloc_node(unsigned long size, int node); | ||||||
| extern void *vmalloc_exec(unsigned long size); |  | ||||||
| extern void *vmalloc_32(unsigned long size); | extern void *vmalloc_32(unsigned long size); | ||||||
| extern void *vmalloc_32_user(unsigned long size); | extern void *vmalloc_32_user(unsigned long size); | ||||||
| extern void *__vmalloc(unsigned long size, gfp_t gfp_mask); | extern void *__vmalloc(unsigned long size, gfp_t gfp_mask); | ||||||
|  | |||||||
| @ -2783,7 +2783,9 @@ static void dynamic_debug_remove(struct module *mod, struct _ddebug *debug) | |||||||
| 
 | 
 | ||||||
| void * __weak module_alloc(unsigned long size) | void * __weak module_alloc(unsigned long size) | ||||||
| { | { | ||||||
| 	return vmalloc_exec(size); | 	return __vmalloc_node_range(size, 1, VMALLOC_START, VMALLOC_END, | ||||||
|  | 			GFP_KERNEL, PAGE_KERNEL_EXEC, VM_FLUSH_RESET_PERMS, | ||||||
|  | 			NUMA_NO_NODE, __func__); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| bool __weak module_init_section(const char *name) | bool __weak module_init_section(const char *name) | ||||||
|  | |||||||
							
								
								
									
										17
									
								
								mm/nommu.c
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								mm/nommu.c
									
									
									
									
									
								
							| @ -290,23 +290,6 @@ void *vzalloc_node(unsigned long size, int node) | |||||||
| } | } | ||||||
| EXPORT_SYMBOL(vzalloc_node); | EXPORT_SYMBOL(vzalloc_node); | ||||||
| 
 | 
 | ||||||
| /**
 |  | ||||||
|  *	vmalloc_exec  -  allocate virtually contiguous, executable memory |  | ||||||
|  *	@size:		allocation size |  | ||||||
|  * |  | ||||||
|  *	Kernel-internal function to allocate enough pages to cover @size |  | ||||||
|  *	the page level allocator and map them into contiguous and |  | ||||||
|  *	executable kernel virtual space. |  | ||||||
|  * |  | ||||||
|  *	For tight control over page level allocator and protection flags |  | ||||||
|  *	use __vmalloc() instead. |  | ||||||
|  */ |  | ||||||
| 
 |  | ||||||
| void *vmalloc_exec(unsigned long size) |  | ||||||
| { |  | ||||||
| 	return __vmalloc(size, GFP_KERNEL | __GFP_HIGHMEM); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| /**
 | /**
 | ||||||
|  * vmalloc_32  -  allocate virtually contiguous memory (32bit addressable) |  * vmalloc_32  -  allocate virtually contiguous memory (32bit addressable) | ||||||
|  *	@size:		allocation size |  *	@size:		allocation size | ||||||
|  | |||||||
							
								
								
									
										20
									
								
								mm/vmalloc.c
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								mm/vmalloc.c
									
									
									
									
									
								
							| @ -2695,26 +2695,6 @@ void *vzalloc_node(unsigned long size, int node) | |||||||
| } | } | ||||||
| EXPORT_SYMBOL(vzalloc_node); | EXPORT_SYMBOL(vzalloc_node); | ||||||
| 
 | 
 | ||||||
| /**
 |  | ||||||
|  * vmalloc_exec - allocate virtually contiguous, executable memory |  | ||||||
|  * @size:	  allocation size |  | ||||||
|  * |  | ||||||
|  * Kernel-internal function to allocate enough pages to cover @size |  | ||||||
|  * the page level allocator and map them into contiguous and |  | ||||||
|  * executable kernel virtual space. |  | ||||||
|  * |  | ||||||
|  * For tight control over page level allocator and protection flags |  | ||||||
|  * use __vmalloc() instead. |  | ||||||
|  * |  | ||||||
|  * Return: pointer to the allocated memory or %NULL on error |  | ||||||
|  */ |  | ||||||
| void *vmalloc_exec(unsigned long size) |  | ||||||
| { |  | ||||||
| 	return __vmalloc_node_range(size, 1, VMALLOC_START, VMALLOC_END, |  | ||||||
| 			GFP_KERNEL, PAGE_KERNEL_EXEC, VM_FLUSH_RESET_PERMS, |  | ||||||
| 			NUMA_NO_NODE, __builtin_return_address(0)); |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| #if defined(CONFIG_64BIT) && defined(CONFIG_ZONE_DMA32) | #if defined(CONFIG_64BIT) && defined(CONFIG_ZONE_DMA32) | ||||||
| #define GFP_VMALLOC32 (GFP_DMA32 | GFP_KERNEL) | #define GFP_VMALLOC32 (GFP_DMA32 | GFP_KERNEL) | ||||||
| #elif defined(CONFIG_64BIT) && defined(CONFIG_ZONE_DMA) | #elif defined(CONFIG_64BIT) && defined(CONFIG_ZONE_DMA) | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user