* 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>
|
||||
|
||||
* 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;
|
||||
}
|
||||
|
||||
#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
|
||||
map_all_pages (void)
|
||||
{
|
||||
|
@ -355,6 +363,9 @@ map_all_pages (void)
|
|||
grub_size_t n_unusable_pages = 0;
|
||||
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));
|
||||
|
||||
gnttab_setver.version = 2;
|
||||
|
|
Loading…
Reference in a new issue