diff options
author | vanjeff <vanjeff@6f19259b-4bc3-4df7-8a09-765794883524> | 2010-08-27 05:31:26 +0000 |
---|---|---|
committer | vanjeff <vanjeff@6f19259b-4bc3-4df7-8a09-765794883524> | 2010-08-27 05:31:26 +0000 |
commit | eb8deb415336644e21732cc4988bf73728219da7 (patch) | |
tree | 933592c6e3eb748ed367161ea0d2d6f22fc79dc7 /MdeModulePkg | |
parent | 4dbea40482159c8989797b6e7cb879522229a78c (diff) | |
download | edk2-eb8deb415336644e21732cc4988bf73728219da7.tar.gz |
sync patch 10825 from main trunk.
r10825 - Avoid DxeCore to reclaim PEI stack as IDT may be on it (like 32-bit OVMF).
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/branches/UDK2010@10830 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdeModulePkg')
-rw-r--r-- | MdeModulePkg/Core/DxeIplPeim/DxeLoad.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/MdeModulePkg/Core/DxeIplPeim/DxeLoad.c b/MdeModulePkg/Core/DxeIplPeim/DxeLoad.c index 1c967ab170..9adfe96b14 100644 --- a/MdeModulePkg/Core/DxeIplPeim/DxeLoad.c +++ b/MdeModulePkg/Core/DxeIplPeim/DxeLoad.c @@ -647,13 +647,14 @@ UpdateStackHob ( while ((Hob.Raw = GetNextHob (EFI_HOB_TYPE_MEMORY_ALLOCATION, Hob.Raw)) != NULL) {
if (CompareGuid (&gEfiHobMemoryAllocStackGuid, &(Hob.MemoryAllocationStack->AllocDescriptor.Name))) {
//
- // Build a new memory allocation HOB with old stack info with EfiConventionalMemory type
- // to be reclaimed by DXE core.
+ // Build a new memory allocation HOB with old stack info with EfiBootServicesData type. Need to
+ // avoid this region be reclaimed by DXE core as the IDT built in SEC might be on stack, and some
+ // PEIMs may also keep key information on stack
//
BuildMemoryAllocationHob (
Hob.MemoryAllocationStack->AllocDescriptor.MemoryBaseAddress,
Hob.MemoryAllocationStack->AllocDescriptor.MemoryLength,
- EfiConventionalMemory
+ EfiBootServicesData
);
//
// Update the BSP Stack Hob to reflect the new stack info.
|