mirror of
https://github.com/acidanthera/audk.git
synced 2025-04-07 19:45:07 +02:00
MdeModulePkg Variable: Move VariableLock install into SmmVariableReady().
VariableLock in VariableSmmRuntimeDxe.c is installed in EntryPoint now. It works based on SMM variable handler by SMM communication with payload buffer. But the payload buffer and SMM variable handler will be not ready in EntryPoint before SmmVariableReady() call back. VarCheck in VariableSmmRuntimeDxe.c has the same issue, so move VarCheck install into SmmVariableReady() also. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Star Zeng <star.zeng@intel.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17626 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
fe9dfae514
commit
aa2868b3f1
@ -935,6 +935,26 @@ SmmVariableReady (
|
||||
NULL
|
||||
);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
mVariableLock.RequestToLock = VariableLockRequestToLock;
|
||||
Status = gBS->InstallMultipleProtocolInterfaces (
|
||||
&mHandle,
|
||||
&gEdkiiVariableLockProtocolGuid,
|
||||
&mVariableLock,
|
||||
NULL
|
||||
);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
mVarCheck.RegisterSetVariableCheckHandler = VarCheckRegisterSetVariableCheckHandler;
|
||||
mVarCheck.VariablePropertySet = VarCheckVariablePropertySet;
|
||||
mVarCheck.VariablePropertyGet = VarCheckVariablePropertyGet;
|
||||
Status = gBS->InstallMultipleProtocolInterfaces (
|
||||
&mHandle,
|
||||
&gEdkiiVarCheckProtocolGuid,
|
||||
&mVarCheck,
|
||||
NULL
|
||||
);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
}
|
||||
|
||||
|
||||
@ -992,7 +1012,6 @@ VariableSmmRuntimeInitialize (
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
VOID *SmmVariableRegistration;
|
||||
VOID *SmmVariableWriteRegistration;
|
||||
EFI_EVENT OnReadyToBootEvent;
|
||||
@ -1001,26 +1020,6 @@ VariableSmmRuntimeInitialize (
|
||||
|
||||
EfiInitializeLock (&mVariableServicesLock, TPL_NOTIFY);
|
||||
|
||||
mVariableLock.RequestToLock = VariableLockRequestToLock;
|
||||
Status = gBS->InstallMultipleProtocolInterfaces (
|
||||
&mHandle,
|
||||
&gEdkiiVariableLockProtocolGuid,
|
||||
&mVariableLock,
|
||||
NULL
|
||||
);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
mVarCheck.RegisterSetVariableCheckHandler = VarCheckRegisterSetVariableCheckHandler;
|
||||
mVarCheck.VariablePropertySet = VarCheckVariablePropertySet;
|
||||
mVarCheck.VariablePropertyGet = VarCheckVariablePropertyGet;
|
||||
Status = gBS->InstallMultipleProtocolInterfaces (
|
||||
&mHandle,
|
||||
&gEdkiiVarCheckProtocolGuid,
|
||||
&mVarCheck,
|
||||
NULL
|
||||
);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
|
||||
//
|
||||
// Smm variable service is ready
|
||||
//
|
||||
|
Loading…
x
Reference in New Issue
Block a user