Calculate descriptor pages strictly based on the actual map size
This commit is contained in:
@@ -409,8 +409,8 @@ Xtos::InitializeLoaderBlock(IN PXTBL_PAGE_MAPPING PageMap,
|
|||||||
}
|
}
|
||||||
FbPages = EFI_SIZE_TO_PAGES(FbSize);
|
FbPages = EFI_SIZE_TO_PAGES(FbSize);
|
||||||
|
|
||||||
/* Add padding to MapSize to account for the ledger mappings */
|
/* Calculate number of pages needed for memory descriptor list */
|
||||||
DescriptorPages = EFI_SIZE_TO_PAGES((PageMap->MapSize + 16) * sizeof(LOADER_MEMORY_DESCRIPTOR));
|
DescriptorPages = EFI_SIZE_TO_PAGES(PageMap->MapSize * sizeof(LOADER_MEMORY_DESCRIPTOR));
|
||||||
|
|
||||||
/* Allocate memory for the kernel initialization block and boot parameters */
|
/* Allocate memory for the kernel initialization block and boot parameters */
|
||||||
Status = XtLdrProtocol->Memory.AllocatePages(AllocateAnyPages, BlockPages, &PhysicalBlock);
|
Status = XtLdrProtocol->Memory.AllocatePages(AllocateAnyPages, BlockPages, &PhysicalBlock);
|
||||||
|
|||||||
Reference in New Issue
Block a user