audk/MdeModulePkg/Core/Dxe
Hao Wu bce776a5b6 MdeModulePkg/DxeMain: Fix BSP interrupts reenabled in ExitBootServices
Within function CoreExitBootServices(), this commit will move the call
of:

MemoryProtectionExitBootServicesCallback();

before:

SaveAndSetDebugTimerInterrupt (FALSE);
and
gCpu->DisableInterrupt (gCpu);

The reason is that, within MemoryProtectionExitBootServicesCallback(),
APIs like RaiseTpl and RestoreTpl maybe called. An example will be:

DebugLib (using PeiDxeDebugLibReportStatusCode instance)
 |
 v
ReportStatusCodeLib (using DxeReportStatusCodeLib instance)
 |
 v
Raise/RestoreTpl

The call of Raise/RestoreTpl APIs will re-enable BSP interrupts. Hence,
this commit refine the calling sequence to ensure BSP interrupts before
leaving CoreExitBootServices().

Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Hao Wu <hao.a.wu@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
2018-03-20 15:54:15 +08:00
..
Dispatcher
DxeMain MdeModulePkg/DxeMain: Fix BSP interrupts reenabled in ExitBootServices 2018-03-20 15:54:15 +08:00
Event
FwVol
FwVolBlock
Gcd MdeModulePkg/Core: allow HeapGuard even before CpuArchProtocol installed 2018-03-16 15:01:11 +08:00
Hand
Image
Library
Mem MdeModulePkg/Core: fix bits operation error on a boundary condition 2018-03-16 15:01:12 +08:00
Misc MdeModulePkg/Core: allow HeapGuard even before CpuArchProtocol installed 2018-03-16 15:01:11 +08:00
SectionExtraction
DxeCore.uni
DxeCoreExtra.uni
DxeMain.h
DxeMain.inf MdeModulePkg/Core: Fix feature conflict between NX and Stack guard 2018-03-07 20:56:42 +08:00