forked from mirrors/linux
		
	x86/xen: discard RAM regions above the maximum reservation
During setup, discard RAM regions that are above the maximum reservation (instead of marking them as E820_UNUSABLE). This allows hotplug memory to be placed at these addresses. Signed-off-by: David Vrabel <david.vrabel@citrix.com> Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
This commit is contained in:
		
							parent
							
								
									f6a6cb1afe
								
							
						
					
					
						commit
						f5775e0b61
					
				
					 1 changed files with 5 additions and 2 deletions
				
			
		|  | @ -829,6 +829,8 @@ char * __init xen_memory_setup(void) | ||||||
| 	addr = xen_e820_map[0].addr; | 	addr = xen_e820_map[0].addr; | ||||||
| 	size = xen_e820_map[0].size; | 	size = xen_e820_map[0].size; | ||||||
| 	while (i < xen_e820_map_entries) { | 	while (i < xen_e820_map_entries) { | ||||||
|  | 		bool discard = false; | ||||||
|  | 
 | ||||||
| 		chunk_size = size; | 		chunk_size = size; | ||||||
| 		type = xen_e820_map[i].type; | 		type = xen_e820_map[i].type; | ||||||
| 
 | 
 | ||||||
|  | @ -843,10 +845,11 @@ char * __init xen_memory_setup(void) | ||||||
| 				xen_add_extra_mem(pfn_s, n_pfns); | 				xen_add_extra_mem(pfn_s, n_pfns); | ||||||
| 				xen_max_p2m_pfn = pfn_s + n_pfns; | 				xen_max_p2m_pfn = pfn_s + n_pfns; | ||||||
| 			} else | 			} else | ||||||
| 				type = E820_UNUSABLE; | 				discard = true; | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		xen_align_and_add_e820_region(addr, chunk_size, type); | 		if (!discard) | ||||||
|  | 			xen_align_and_add_e820_region(addr, chunk_size, type); | ||||||
| 
 | 
 | ||||||
| 		addr += chunk_size; | 		addr += chunk_size; | ||||||
| 		size -= chunk_size; | 		size -= chunk_size; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 David Vrabel
						David Vrabel