FmpDevicePkg FmpDxe: Need repopulate after SetImage is called

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

Cc: Michael D Kinney <michael.d.kinney@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>
This commit is contained in:
Star Zeng 2018-08-06 15:44:59 +08:00
parent cefc8d8821
commit 27e42bf61b
1 changed files with 6 additions and 15 deletions

View File

@ -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;
}