mirror of https://github.com/acidanthera/audk.git
3d7ebd6434
VariableRuntimeDxe will have OnEndOfDxe() callback function at TPL_NOTIFY level on EndOfDxe event when DXE variable solution is used. Status = gBS->CreateEventEx ( EVT_NOTIFY_SIGNAL, TPL_NOTIFY, OnEndOfDxe, NULL, &gEfiEndOfDxeEventGroupGuid, &EndOfDxeEvent ); VariableSmm will have SmmEndOfDxeCallback() callback function at TPL_CALLBACK level on SmmEndOfDxe event when SMM variable solution is used. SmmIplGuidedEventNotify() - PiSmmIpl.c TPL_CALLBACK on EndOfDxe -> SmmEndOfDxeHandler() - PiSmmCore.c install SmmEndOfDxe protocol -> SmmEndOfDxeCallback() - VariableSmm.c The TPL level for (Smm)EndOfDxe callback between VariableRuntimeDxe and VariableSmm is inconsistent, it will make the unified platform code could not make sure its TPL_NOTIFY EndOfDxe callback function (to use variable lock/check) executed before (Smm)EndOfDxe callback function in variable driver. The variable lock/check will start to protect after (Smm)EndOfDxe callback function in variable driver is executed. This patch is to algin the TPL level to TPL_CALLBACK for (Smm)EndOfDxe callback between VariableRuntimeDxe and VariableSmm. Cc: Chasel Chiu <chasel.chiu@intel.com> Cc: Ruiyu Ni <ruiyu.ni@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Chasel Chiu <chasel.chiu@intel.com> |
||
---|---|---|
.. | ||
Measurement.c | ||
PrivilegePolymorphic.h | ||
Reclaim.c | ||
TcgMorLockDxe.c | ||
TcgMorLockSmm.c | ||
VarCheck.c | ||
Variable.c | ||
Variable.h | ||
VariableDxe.c | ||
VariableExLib.c | ||
VariableRuntimeDxe.inf | ||
VariableRuntimeDxe.uni | ||
VariableRuntimeDxeExtra.uni | ||
VariableSmm.c | ||
VariableSmm.inf | ||
VariableSmm.uni | ||
VariableSmmExtra.uni | ||
VariableSmmRuntimeDxe.c | ||
VariableSmmRuntimeDxe.inf | ||
VariableSmmRuntimeDxe.uni | ||
VariableSmmRuntimeDxeExtra.uni |