From 021a1af927f5ba50ecfe21259a0928a7308e70ff Mon Sep 17 00:00:00 2001 From: lzeng14 Date: Wed, 30 May 2012 02:42:26 +0000 Subject: Return EFI_WRITE_PROTECTED when setting HwErrRecSupport Global Variable at runtime. Signed-off-by: Star Zeng Reviewed-by: Guo Dong git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13372 6f19259b-4bc3-4df7-8a09-765794883524 --- MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'MdeModulePkg') diff --git a/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c b/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c index 94ec660c04..8f1ae7b130 100644 --- a/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c +++ b/MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c @@ -1,6 +1,6 @@ /** @file - The common variable operation routines shared by DXE_RINTIME variable + The common variable operation routines shared by DXE_RUNTIME variable module and DXE_SMM variable module. Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.
@@ -2065,7 +2065,17 @@ VariableServiceSetVariable ( (sizeof (VARIABLE_HEADER) + StrSize (VariableName) + DataSize > PcdGet32 (PcdMaxVariableSize))) { return EFI_INVALID_PARAMETER; } - } + } + + if (AtRuntime ()) { + // + // HwErrRecSupport Global Variable identifies the level of hardware error record persistence + // support implemented by the platform. This variable is only modified by firmware and is read-only to the OS. + // + if (CompareGuid (VendorGuid, &gEfiGlobalVariableGuid) && (StrCmp (VariableName, L"HwErrRecSupport") == 0)) { + return EFI_WRITE_PROTECTED; + } + } AcquireLockOnlyAtBootTime(&mVariableModuleGlobal->VariableGlobal.VariableServicesLock); -- cgit v1.2.3