No need repopulate if SetImage is not called.
But need repopulate after SetImage is called to update
LastAttemptVersion and LastAttemptStatus

Cc: Michael D Kinney <[email protected]>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Star Zeng <[email protected]>
---
 FmpDevicePkg/FmpDxe/FmpDxe.c | 21 ++++++---------------
 1 file changed, 6 insertions(+), 15 deletions(-)

diff --git a/FmpDevicePkg/FmpDxe/FmpDxe.c b/FmpDevicePkg/FmpDxe/FmpDxe.c
index eb3a9b0e32c2..3794ac5008f9 100644
--- a/FmpDevicePkg/FmpDxe/FmpDxe.c
+++ b/FmpDevicePkg/FmpDxe/FmpDxe.c
@@ -906,9 +906,6 @@ SetTheImage (
   UINT32      AllHeaderSize;
   UINT32      IncommingFwVersion;
   UINT32      LastAttemptStatus;
-  EFI_STATUS  GetAttributesStatus;
-  UINT64      AttributesSupported;
-  UINT64      AttributesSetting;
   UINT32      Version;
   UINT32      LowestSupportedVersion;
 
@@ -1121,18 +1118,6 @@ SetTheImage (
 
   LastAttemptStatus = LAST_ATTEMPT_STATUS_SUCCESS;
 
-  //
-  // Set flag so the descriptor is repopulated
-  // This is only applied to devices that do not require reset
-  //
-  GetAttributesStatus = FmpDeviceGetAttributes (&AttributesSupported, 
&AttributesSetting);
-  if (!EFI_ERROR (GetAttributesStatus)) {
-    if (((AttributesSupported & IMAGE_ATTRIBUTE_RESET_REQUIRED) == 0) ||
-        ((AttributesSetting & IMAGE_ATTRIBUTE_RESET_REQUIRED) == 0)) {
-      mDescriptorPopulated = FALSE;
-    }
-  }
-
 cleanup:
   mProgressFunc = NULL;
   mProgressSupported = FALSE;
@@ -1145,6 +1130,12 @@ cleanup:
     Progress (100);
   }
 
+  //
+  // Need repopulate after SetImage is called to
+  // update LastAttemptVersion and LastAttemptStatus.
+  //
+  mDescriptorPopulated = FALSE;
+
   return Status;
 }
 
-- 
2.7.0.windows.1

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to