]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdeModulePkg FaultTolerantWritePei: Refine the code to avoid error report.
authorStar Zeng <star.zeng@intel.com>
Thu, 11 Jul 2013 01:40:10 +0000 (01:40 +0000)
committerlzeng14 <lzeng14@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 11 Jul 2013 01:40:10 +0000 (01:40 +0000)
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Eric Dong <eric.dong@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14462 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.c

index ec03216c06cb21f36f33351761a4d2c890f2cea2..14e18e5ae265b1b61e460708cc25d67a519de1a5 100644 (file)
@@ -254,23 +254,26 @@ PeimFaultTolerantWriteInitialize (
                  );\r
     }\r
 \r
-    if (!EFI_ERROR (Status) && ((FtwLastWriteRecord->SpareComplete == FTW_VALID_STATE) && (FtwLastWriteRecord->DestinationComplete != FTW_VALID_STATE))) {\r
-      //\r
-      // If FTW last write was still in progress with SpareComplete set and DestinationComplete not set.\r
-      // It means the target buffer has been backed up in spare block, then target block has been erased,\r
-      // but the target buffer has not been writen in target block from spare block, we need to build\r
-      // FAULT_TOLERANT_WRITE_LAST_WRITE_DATA GUID hob to hold the FTW last write data.\r
-      //\r
-      FtwLastWrite.TargetAddress = (EFI_PHYSICAL_ADDRESS) (UINTN) ((INT64) SpareAreaAddress + FtwLastWriteRecord->RelativeOffset);\r
-      FtwLastWrite.SpareAddress = SpareAreaAddress;\r
-      FtwLastWrite.Length = SpareAreaLength;\r
-      DEBUG ((\r
-        EFI_D_INFO,\r
-        "FtwPei last write data: TargetAddress - 0x%x SpareAddress - 0x%x Length - 0x%x\n",\r
-        (UINTN) FtwLastWrite.TargetAddress,\r
-        (UINTN) FtwLastWrite.SpareAddress,\r
-        (UINTN) FtwLastWrite.Length));\r
-      BuildGuidDataHob (&gEdkiiFaultTolerantWriteGuid, (VOID *) &FtwLastWrite, sizeof (FAULT_TOLERANT_WRITE_LAST_WRITE_DATA));\r
+    if (!EFI_ERROR (Status)) {\r
+      ASSERT (FtwLastWriteRecord != NULL);\r
+      if ((FtwLastWriteRecord->SpareComplete == FTW_VALID_STATE) && (FtwLastWriteRecord->DestinationComplete != FTW_VALID_STATE)) {\r
+        //\r
+        // If FTW last write was still in progress with SpareComplete set and DestinationComplete not set.\r
+        // It means the target buffer has been backed up in spare block, then target block has been erased,\r
+        // but the target buffer has not been writen in target block from spare block, we need to build\r
+        // FAULT_TOLERANT_WRITE_LAST_WRITE_DATA GUID hob to hold the FTW last write data.\r
+        //\r
+        FtwLastWrite.TargetAddress = (EFI_PHYSICAL_ADDRESS) (UINTN) ((INT64) SpareAreaAddress + FtwLastWriteRecord->RelativeOffset);\r
+        FtwLastWrite.SpareAddress = SpareAreaAddress;\r
+        FtwLastWrite.Length = SpareAreaLength;\r
+        DEBUG ((\r
+          EFI_D_INFO,\r
+          "FtwPei last write data: TargetAddress - 0x%x SpareAddress - 0x%x Length - 0x%x\n",\r
+          (UINTN) FtwLastWrite.TargetAddress,\r
+          (UINTN) FtwLastWrite.SpareAddress,\r
+          (UINTN) FtwLastWrite.Length));\r
+        BuildGuidDataHob (&gEdkiiFaultTolerantWriteGuid, (VOID *) &FtwLastWrite, sizeof (FAULT_TOLERANT_WRITE_LAST_WRITE_DATA));\r
+      }\r
     }\r
   } else {\r
     FtwWorkingBlockHeader = NULL;\r