summaryrefslogtreecommitdiffstats
path: root/BaseTools/Source/Python/Workspace/WorkspaceCommon.py
diff options
context:
space:
mode:
authorHao Wu <hao.a.wu@intel.com>2018-03-19 15:02:59 +0800
committerHao Wu <hao.a.wu@intel.com>2018-03-20 15:54:15 +0800
commitbce776a5b695b5bf1f063f5417e48c56b43b88a7 (patch)
tree76e193b5aec93b153e6a0aea810116c1bd977371 /BaseTools/Source/Python/Workspace/WorkspaceCommon.py
parenta7bbe9d20ba2df35e545bf9c8eec348d9c5f1b93 (diff)
downloadedk2-bce776a5b695b5bf1f063f5417e48c56b43b88a7.tar.gz
edk2-bce776a5b695b5bf1f063f5417e48c56b43b88a7.tar.bz2
edk2-bce776a5b695b5bf1f063f5417e48c56b43b88a7.zip
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>
Diffstat (limited to 'BaseTools/Source/Python/Workspace/WorkspaceCommon.py')
0 files changed, 0 insertions, 0 deletions