Fix single-VMA chunk range conflict due to mremap locking order
This commit is contained in:
		
							parent
							
								
									fbde30d1c3
								
							
						
					
					
						commit
						70dbf84782
					
				| @ -424,8 +424,9 @@ impl VMManager { | |||||||
| 
 | 
 | ||||||
|         // Try merging all connecting chunks
 |         // Try merging all connecting chunks
 | ||||||
|         { |         { | ||||||
|             let mut merged_vmas = current.vm().merge_all_single_vma_chunks()?; |             // Must lock the internal manager first here in case the chunk's range and vma are conflict when other threads are operating the VM
 | ||||||
|             let mut internal_manager = self.internal.lock().unwrap(); |             let mut internal_manager = self.internal.lock().unwrap(); | ||||||
|  |             let mut merged_vmas = current.vm().merge_all_single_vma_chunks()?; | ||||||
|             while merged_vmas.len() != 0 { |             while merged_vmas.len() != 0 { | ||||||
|                 let merged_vma = merged_vmas.pop().unwrap(); |                 let merged_vma = merged_vmas.pop().unwrap(); | ||||||
|                 internal_manager.add_new_chunk(¤t, merged_vma); |                 internal_manager.add_new_chunk(¤t, merged_vma); | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user