summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGao, Liming <liming.gao@intel.com>2014-02-13 03:37:07 +0000
committerlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>2014-02-13 03:37:07 +0000
commite4c83a4f9cad7f2c362727cdeb3f5daf297ec270 (patch)
tree43730d870055dc3a18c335e27de21ad959861c5a
parentd5b5440bf205a37c8ae0ac4b873cd976a9598326 (diff)
downloadedk2-e4c83a4f9cad7f2c362727cdeb3f5daf297ec270.zip
edk2-e4c83a4f9cad7f2c362727cdeb3f5daf297ec270.tar.gz
edk2-e4c83a4f9cad7f2c362727cdeb3f5daf297ec270.tar.bz2
Fixed the issue in ExitBootServices() implementation to avoid the potential boot service usage after () after gCpu->DisableInterrupt ().
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Gao, Liming <liming.gao@intel.com> Reviewed-By: Olivier Martin <Olivier.martin@arm.com> Reviewed-by: Michael Kinney <michael.d.kinney@intel.com> Reviewed-by: Zeng, Star <star.zeng@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15243 6f19259b-4bc3-4df7-8a09-765794883524
-rw-r--r--MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c b/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c
index 6d2ff82..d8c7cd0 100644
--- a/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c
+++ b/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c
@@ -1,7 +1,7 @@
/** @file
DXE Core Main Entry Point
-Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@@ -742,6 +742,14 @@ CoreExitBootServices (
CoreNotifySignalList (&gEfiEventExitBootServicesGuid);
//
+ // Report that ExitBootServices() has been called
+ //
+ REPORT_STATUS_CODE (
+ EFI_PROGRESS_CODE,
+ (EFI_SOFTWARE_EFI_BOOT_SERVICE | EFI_SW_BS_PC_EXIT_BOOT_SERVICES)
+ );
+
+ //
// Disable interrupt of Debug timer.
//
SaveAndSetDebugTimerInterrupt (FALSE);
@@ -752,14 +760,6 @@ CoreExitBootServices (
gCpu->DisableInterrupt (gCpu);
//
- // Report that ExitBootServices() has been called
- //
- REPORT_STATUS_CODE (
- EFI_PROGRESS_CODE,
- (EFI_SOFTWARE_EFI_BOOT_SERVICE | EFI_SW_BS_PC_EXIT_BOOT_SERVICES)
- );
-
- //
// Clear the non-runtime values of the EFI System Table
//
gDxeCoreST->BootServices = NULL;