if (Buffer == NULL) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
+\r
+ WorkSpaceLbaOffset = FtwDevice->FtwWorkSpaceLba - FtwDevice->FtwWorkBlockLba;\r
+\r
//\r
// To guarantee that the WorkingBlockValid is set on spare block\r
//\r
//\r
FtwUpdateFvState (\r
FtwDevice->FtwBackupFvb,\r
- FtwDevice->FtwWorkSpaceLba,\r
+ FtwDevice->FtwSpareLba + WorkSpaceLbaOffset,\r
FtwDevice->FtwWorkSpaceBase + sizeof (EFI_GUID) + sizeof (UINT32),\r
WORKING_BLOCK_VALID\r
);\r
//\r
// Clear the CRC and STATE, copy data from spare to working block.\r
//\r
- WorkSpaceLbaOffset = FtwDevice->FtwWorkSpaceLba - FtwDevice->FtwWorkBlockLba;\r
WorkingBlockHeader = (EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *) (Buffer + (UINTN) WorkSpaceLbaOffset * FtwDevice->BlockSize + FtwDevice->FtwWorkSpaceBase);\r
InitWorkSpaceHeader (WorkingBlockHeader);\r
WorkingBlockHeader->WorkingBlockValid = FTW_ERASE_POLARITY;\r