MdeModulePkg: Change TCG MOR variables to use VariablePolicy
https://bugzilla.tianocore.org/show_bug.cgi?id=2522 These were previously using VarLock, which is being deprecated. Cc: Jian J Wang <jian.j.wang@intel.com> Cc: Hao A Wu <hao.a.wu@intel.com> Cc: Liming Gao <liming.gao@intel.com> Cc: Bret Barkelew <brbarkel@microsoft.com> Signed-off-by: Bret Barkelew <brbarkel@microsoft.com> Reviewed-by: Dandan Bi <dandan.bi@intel.com> Acked-by: Jian J Wang <jian.j.wang@intel.com>
This commit is contained in:
committed by
mergify[bot]
parent
28f4616fde
commit
98ee0c68a2
@@ -19,7 +19,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#include "Variable.h"
|
||||
|
||||
#include <Protocol/VariablePolicy.h>
|
||||
|
||||
#include <Library/VariablePolicyHelperLib.h>
|
||||
#include <Library/VariablePolicyLib.h>
|
||||
|
||||
typedef struct {
|
||||
@@ -422,6 +422,8 @@ MorLockInitAtEndOfDxe (
|
||||
{
|
||||
UINTN MorSize;
|
||||
EFI_STATUS MorStatus;
|
||||
EFI_STATUS Status;
|
||||
VARIABLE_POLICY_ENTRY *NewPolicy;
|
||||
|
||||
if (!mMorLockInitializationRequired) {
|
||||
//
|
||||
@@ -494,11 +496,25 @@ MorLockInitAtEndOfDxe (
|
||||
// The MOR variable is absent; the platform firmware does not support it.
|
||||
// Lock the variable so that no other module may create it.
|
||||
//
|
||||
VariableLockRequestToLock (
|
||||
NULL, // This
|
||||
MEMORY_OVERWRITE_REQUEST_VARIABLE_NAME,
|
||||
&gEfiMemoryOverwriteControlDataGuid
|
||||
);
|
||||
NewPolicy = NULL;
|
||||
Status = CreateBasicVariablePolicy( &gEfiMemoryOverwriteControlDataGuid,
|
||||
MEMORY_OVERWRITE_REQUEST_VARIABLE_NAME,
|
||||
VARIABLE_POLICY_NO_MIN_SIZE,
|
||||
VARIABLE_POLICY_NO_MAX_SIZE,
|
||||
VARIABLE_POLICY_NO_MUST_ATTR,
|
||||
VARIABLE_POLICY_NO_CANT_ATTR,
|
||||
VARIABLE_POLICY_TYPE_LOCK_NOW,
|
||||
&NewPolicy );
|
||||
if (!EFI_ERROR( Status )) {
|
||||
Status = RegisterVariablePolicy( NewPolicy );
|
||||
}
|
||||
if (EFI_ERROR( Status )) {
|
||||
DEBUG(( DEBUG_ERROR, "%a - Failed to lock variable %s! %r\n", __FUNCTION__, MEMORY_OVERWRITE_REQUEST_VARIABLE_NAME, Status ));
|
||||
ASSERT_EFI_ERROR( Status );
|
||||
}
|
||||
if (NewPolicy != NULL) {
|
||||
FreePool( NewPolicy );
|
||||
}
|
||||
|
||||
//
|
||||
// Delete the MOR Control Lock variable too (should it exists for some
|
||||
@@ -514,9 +530,23 @@ MorLockInitAtEndOfDxe (
|
||||
);
|
||||
mMorLockPassThru = FALSE;
|
||||
|
||||
VariableLockRequestToLock (
|
||||
NULL, // This
|
||||
MEMORY_OVERWRITE_REQUEST_CONTROL_LOCK_NAME,
|
||||
&gEfiMemoryOverwriteRequestControlLockGuid
|
||||
);
|
||||
NewPolicy = NULL;
|
||||
Status = CreateBasicVariablePolicy( &gEfiMemoryOverwriteRequestControlLockGuid,
|
||||
MEMORY_OVERWRITE_REQUEST_CONTROL_LOCK_NAME,
|
||||
VARIABLE_POLICY_NO_MIN_SIZE,
|
||||
VARIABLE_POLICY_NO_MAX_SIZE,
|
||||
VARIABLE_POLICY_NO_MUST_ATTR,
|
||||
VARIABLE_POLICY_NO_CANT_ATTR,
|
||||
VARIABLE_POLICY_TYPE_LOCK_NOW,
|
||||
&NewPolicy );
|
||||
if (!EFI_ERROR( Status )) {
|
||||
Status = RegisterVariablePolicy( NewPolicy );
|
||||
}
|
||||
if (EFI_ERROR( Status )) {
|
||||
DEBUG(( DEBUG_ERROR, "%a - Failed to lock variable %s! %r\n", __FUNCTION__, MEMORY_OVERWRITE_REQUEST_CONTROL_LOCK_NAME, Status ));
|
||||
ASSERT_EFI_ERROR( Status );
|
||||
}
|
||||
if (NewPolicy != NULL) {
|
||||
FreePool( NewPolicy );
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user