UefiCpuPkg S3Resume2Pei: Report status code when allocate memory is failed

Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jeff Fan <jeff.fan@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Reviewed-by: Jeff Fan <jeff.fan@intel.com>
This commit is contained in:
Star Zeng 2016-06-30 15:17:58 +08:00
parent 3b3593b567
commit 6f9760d88b
1 changed files with 15 additions and 3 deletions

View File

@ -4,7 +4,7 @@
This module will excute the boot script saved during last boot and after that, This module will excute the boot script saved during last boot and after that,
control is passed to OS waking up handler. control is passed to OS waking up handler.
Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR> Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials This program and the accompanying materials
are licensed and made available under the terms and conditions are licensed and made available under the terms and conditions
@ -822,7 +822,13 @@ S3ResumeExecuteBootScript (
// Make sure the newly allcated IDT align with 16-bytes // Make sure the newly allcated IDT align with 16-bytes
// //
IdtBuffer = AllocatePages (EFI_SIZE_TO_PAGES((IdtDescriptor->Limit + 1) + 16)); IdtBuffer = AllocatePages (EFI_SIZE_TO_PAGES((IdtDescriptor->Limit + 1) + 16));
ASSERT (IdtBuffer != NULL); if (IdtBuffer == NULL) {
REPORT_STATUS_CODE (
EFI_ERROR_CODE | EFI_ERROR_MAJOR,
(EFI_SOFTWARE_PEI_MODULE | EFI_SW_PEI_EC_S3_RESUME_FAILED)
);
ASSERT (FALSE);
}
// //
// Additional 16 bytes allocated to save IA32 IDT descriptor and Pei Service Table Pointer // Additional 16 bytes allocated to save IA32 IDT descriptor and Pei Service Table Pointer
// IA32 IDT descriptor will be used to setup IA32 IDT table for 32-bit Framework Boot Script code // IA32 IDT descriptor will be used to setup IA32 IDT table for 32-bit Framework Boot Script code
@ -852,7 +858,13 @@ S3ResumeExecuteBootScript (
// Prepare data for return back // Prepare data for return back
// //
PeiS3ResumeState = AllocatePool (sizeof(*PeiS3ResumeState)); PeiS3ResumeState = AllocatePool (sizeof(*PeiS3ResumeState));
ASSERT (PeiS3ResumeState != NULL); if (PeiS3ResumeState == NULL) {
REPORT_STATUS_CODE (
EFI_ERROR_CODE | EFI_ERROR_MAJOR,
(EFI_SOFTWARE_PEI_MODULE | EFI_SW_PEI_EC_S3_RESUME_FAILED)
);
ASSERT (FALSE);
}
DEBUG (( EFI_D_ERROR, "PeiS3ResumeState - %x\r\n", PeiS3ResumeState)); DEBUG (( EFI_D_ERROR, "PeiS3ResumeState - %x\r\n", PeiS3ResumeState));
PeiS3ResumeState->ReturnCs = 0x10; PeiS3ResumeState->ReturnCs = 0x10;
PeiS3ResumeState->ReturnEntryPoint = (EFI_PHYSICAL_ADDRESS)(UINTN)S3ResumeBootOs; PeiS3ResumeState->ReturnEntryPoint = (EFI_PHYSICAL_ADDRESS)(UINTN)S3ResumeBootOs;