module: undo module RONX protection correctly.
While debugging I stumbled over two problems in the code that protects module pages. First issue is that disabling the protection before freeing init or unload of a module is not symmetric with the enablement. For instance, if pages are set to RO the page range from module_core to module_core + core_ro_size is protected. If a module is unloaded the page range from module_core to module_core + core_size is set back to RW. So pages that were not set to RO are also changed to RW. This is not critical but IMHO it should be symmetric. Second issue is that while set_memory_rw & set_memory_ro are used for RO/RW changes only set_memory_nx is involved for NX/X. One would await that the inverse function is called when the NX protection should be removed, which is not the case here, unless I'm missing something. Signed-off-by: Jan Glauber <jang@linux.vnet.ibm.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
		
					parent
					
						
							
								4d10380e72
							
						
					
				
			
			
				commit
				
					
						448694a1d5
					
				
			
		
					 3 changed files with 19 additions and 12 deletions
				
			
		|  | @ -11,5 +11,6 @@ void kernel_map_pages(struct page *page, int numpages, int enable); | |||
| int set_memory_ro(unsigned long addr, int numpages); | ||||
| int set_memory_rw(unsigned long addr, int numpages); | ||||
| int set_memory_nx(unsigned long addr, int numpages); | ||||
| int set_memory_x(unsigned long addr, int numpages); | ||||
| 
 | ||||
| #endif /* _S390_CACHEFLUSH_H */ | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Jan Glauber
				Jan Glauber