VOID *Point1;\r
BOOLEAN FoundAdded;\r
EFI_STATUS Status;\r
+ EFI_STATUS DoneStatus;\r
UINTN CommonVariableTotalSize;\r
UINTN CommonUserVariableTotalSize;\r
UINTN HwErrVariableTotalSize;\r
}\r
\r
Done:\r
+ DoneStatus = EFI_SUCCESS;\r
if (IsVolatile || mVariableModuleGlobal->VariableGlobal.EmuNvMode) {\r
- Status = SynchronizeRuntimeVariableCache (\r
- &mVariableModuleGlobal->VariableGlobal.VariableRuntimeCacheContext.VariableRuntimeVolatileCache,\r
- 0,\r
- VariableStoreHeader->Size\r
- );\r
- ASSERT_EFI_ERROR (Status);\r
+ DoneStatus = SynchronizeRuntimeVariableCache (\r
+ &mVariableModuleGlobal->VariableGlobal.VariableRuntimeCacheContext.VariableRuntimeVolatileCache,\r
+ 0,\r
+ VariableStoreHeader->Size\r
+ );\r
+ ASSERT_EFI_ERROR (DoneStatus);\r
FreePool (ValidBuffer);\r
} else {\r
//\r
// For NV variable reclaim, we use mNvVariableCache as the buffer, so copy the data back.\r
//\r
CopyMem (mNvVariableCache, (UINT8 *) (UINTN) VariableBase, VariableStoreHeader->Size);\r
- Status = SynchronizeRuntimeVariableCache (\r
- &mVariableModuleGlobal->VariableGlobal.VariableRuntimeCacheContext.VariableRuntimeNvCache,\r
- 0,\r
- VariableStoreHeader->Size\r
- );\r
- ASSERT_EFI_ERROR (Status);\r
+ DoneStatus = SynchronizeRuntimeVariableCache (\r
+ &mVariableModuleGlobal->VariableGlobal.VariableRuntimeCacheContext.VariableRuntimeNvCache,\r
+ 0,\r
+ VariableStoreHeader->Size\r
+ );\r
+ ASSERT_EFI_ERROR (DoneStatus);\r
+ }\r
+\r
+ if (!EFI_ERROR (Status) && EFI_ERROR (DoneStatus)) {\r
+ Status = DoneStatus;\r
}\r
\r
return Status;\r