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
This commit is contained in:
Gao, Liming 2014-02-13 03:37:07 +00:00 committed by lgao4
parent d5b5440bf2
commit e4c83a4f9c

@ -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
@ -741,6 +741,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.
//
@ -751,14 +759,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
//