summaryrefslogtreecommitdiffstats
path: root/MdeModulePkg/Core
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 /MdeModulePkg/Core
parentd5b5440bf205a37c8ae0ac4b873cd976a9598326 (diff)
downloadedk2-e4c83a4f9cad7f2c362727cdeb3f5daf297ec270.tar.gz
edk2-e4c83a4f9cad7f2c362727cdeb3f5daf297ec270.tar.bz2
edk2-e4c83a4f9cad7f2c362727cdeb3f5daf297ec270.zip
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
Diffstat (limited to 'MdeModulePkg/Core')
-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 6d2ff82023..d8c7cd0249 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;