audk/MdeModulePkg/Core
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
..
Dxe MdeModulePkg/DxeMain: Fix BSP interrupts reenabled in ExitBootServices 2018-03-20 15:54:15 +08:00
DxeIplPeim MdeModulePkg DxeIpl: remove the hard code alignment adjustment in Decompress() 2018-01-19 13:20:29 +08:00
Pei MdeModulePkg/Core/Pei: fix REGISITER -> REGISTER typo 2018-03-09 18:08:59 +01:00
PiSmmCore MdeModulePkg/PiSmmCore: fix #PF caused by freeing read-only memory 2018-03-16 15:01:59 +08:00
RuntimeDxe MdeModulePkg: Update RuntimeDxe Crc32 to check the input parameter 2017-10-16 11:23:07 +08:00