summaryrefslogtreecommitdiffstats
path: root/OvmfPkg/Library/SerializeVariablesLib
diff options
context:
space:
mode:
authorGary Lin <glin@suse.com>2016-05-26 18:24:14 +0800
committerLaszlo Ersek <lersek@redhat.com>2016-05-26 13:21:36 +0200
commitdb827286e2839102c5b0a45f88a99b8ef94c6d48 (patch)
treec95c95ffd8ff5746b41e7a5cf781ace4c9863913 /OvmfPkg/Library/SerializeVariablesLib
parent251ca60496719b37e02978bc5b037e2b06a39659 (diff)
downloadedk2-db827286e2839102c5b0a45f88a99b8ef94c6d48.tar.gz
edk2-db827286e2839102c5b0a45f88a99b8ef94c6d48.tar.bz2
edk2-db827286e2839102c5b0a45f88a99b8ef94c6d48.zip
OvmfPkg/SerializeVariablesLib: Relax check for the read-only variable
When OVMF tried to restore the variables from the file-based NvVars, it failed to set the read-only variable and aborted the restoration with this message: Variable Check ReadOnly variable fail Write Protected - 04B37FE8-F6AE-480B-BDD5-37D98C5E89AA:VarErrorFlag Since it's a read-only variable maintained by the firmware, it's pointless to restore the previous value, so the check can be relaxed to allow EFI_WRITE_PROTECTED returned from SetVariable. Cc: Laszlo Ersek <lersek@redhat.com> Cc: Jordan Justen <jordan.l.justen@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Gary Lin <glin@suse.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Diffstat (limited to 'OvmfPkg/Library/SerializeVariablesLib')
-rw-r--r--OvmfPkg/Library/SerializeVariablesLib/SerializeVariablesLib.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/OvmfPkg/Library/SerializeVariablesLib/SerializeVariablesLib.c b/OvmfPkg/Library/SerializeVariablesLib/SerializeVariablesLib.c
index 3a24edcd48..a1a3d188f2 100644
--- a/OvmfPkg/Library/SerializeVariablesLib/SerializeVariablesLib.c
+++ b/OvmfPkg/Library/SerializeVariablesLib/SerializeVariablesLib.c
@@ -302,6 +302,11 @@ IterateVariablesCallbackSetSystemVariable (
"failed with EFI_SECURITY_VIOLATION, ignoring\n", __FUNCTION__,
VariableName));
Status = EFI_SUCCESS;
+ } else if (Status == EFI_WRITE_PROTECTED) {
+ DEBUG ((DEBUG_WARN, "%a: setting ReadOnly variable \"%s\" "
+ "failed with EFI_WRITE_PROTECTED, ignoring\n", __FUNCTION__,
+ VariableName));
+ Status = EFI_SUCCESS;
}
return Status;
}