summaryrefslogtreecommitdiff
path: root/EdkModulePkg/Universal/Variable/RuntimeDxe/Variable.c
diff options
context:
space:
mode:
Diffstat (limited to 'EdkModulePkg/Universal/Variable/RuntimeDxe/Variable.c')
-rw-r--r--EdkModulePkg/Universal/Variable/RuntimeDxe/Variable.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/EdkModulePkg/Universal/Variable/RuntimeDxe/Variable.c b/EdkModulePkg/Universal/Variable/RuntimeDxe/Variable.c
index e224558651..589217a992 100644
--- a/EdkModulePkg/Universal/Variable/RuntimeDxe/Variable.c
+++ b/EdkModulePkg/Universal/Variable/RuntimeDxe/Variable.c
@@ -1403,6 +1403,15 @@ Returns:
sizeof (UINT32),
(UINT8 *) &VariableStoreEntry.Length
);
+ //
+ // As Variables are stored in NV storage, which are slow devices,such as flash.
+ // Variable operation may skip checking variable program result to improve performance,
+ // We can assume Variable program is OK through some check point.
+ // Variable Store Size Setting should be the first Variable write operation,
+ // We can assume all Read/Write is OK if we can set Variable store size successfully.
+ // If write fail, we will assert here
+ //
+ ASSERT(VariableStoreHeader->Size == VariableStoreEntry.Length);
if (EFI_ERROR (Status)) {
return Status;