* grub-core/kern/xen/init.c: Do not map more pages than we can address.
This commit is contained in:
		
							parent
							
								
									189090cee9
								
							
						
					
					
						commit
						e1c22419ac
					
				
					 2 changed files with 15 additions and 0 deletions
				
			
		|  | @ -1,3 +1,7 @@ | ||||||
|  | 2013-11-22  Vladimir Serbinenko  <phcoder@gmail.com> | ||||||
|  | 
 | ||||||
|  | 	* grub-core/kern/xen/init.c: Do not map more pages than we can address. | ||||||
|  | 
 | ||||||
| 2013-11-22  Vladimir Serbinenko  <phcoder@gmail.com> | 2013-11-22  Vladimir Serbinenko  <phcoder@gmail.com> | ||||||
| 
 | 
 | ||||||
| 	* grub-core/kern/efi/mm.c: Limit allocations to 2GiB when not compiling | 	* grub-core/kern/efi/mm.c: Limit allocations to 2GiB when not compiling | ||||||
|  |  | ||||||
|  | @ -341,6 +341,14 @@ page2offset (grub_uint64_t page) | ||||||
|   return page << 12; |   return page << 12; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | #if defined (__x86_64__) && defined (__code_model_large__) | ||||||
|  | #define MAX_TOTAL_PAGES (1LL << (64 - 12)) | ||||||
|  | #elif defined (__x86_64__) | ||||||
|  | #define MAX_TOTAL_PAGES (1LL << (31 - 12)) | ||||||
|  | #else | ||||||
|  | #define MAX_TOTAL_PAGES (1LL << (32 - 12)) | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
| static void | static void | ||||||
| map_all_pages (void) | map_all_pages (void) | ||||||
| { | { | ||||||
|  | @ -355,6 +363,9 @@ map_all_pages (void) | ||||||
|   grub_size_t n_unusable_pages = 0; |   grub_size_t n_unusable_pages = 0; | ||||||
|   struct mmu_update m2p_updates[2 * MAX_N_UNUSABLE_PAGES]; |   struct mmu_update m2p_updates[2 * MAX_N_UNUSABLE_PAGES]; | ||||||
| 
 | 
 | ||||||
|  |   if (total_pages > MAX_TOTAL_PAGES - 4) | ||||||
|  |     total_pages = MAX_TOTAL_PAGES - 4; | ||||||
|  | 
 | ||||||
|   grub_memset (&gnttab_setver, 0, sizeof (gnttab_setver)); |   grub_memset (&gnttab_setver, 0, sizeof (gnttab_setver)); | ||||||
| 
 | 
 | ||||||
|   gnttab_setver.version = 2; |   gnttab_setver.version = 2; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue