]> git.proxmox.com Git - mirror_edk2.git/blobdiff - SignedCapsulePkg/Universal/SystemFirmwareUpdate/SystemFirmwareReportDxe.c
SignedCapsulePkg SystemFirmwareReportDxe: Try LocateProtocol
[mirror_edk2.git] / SignedCapsulePkg / Universal / SystemFirmwareUpdate / SystemFirmwareReportDxe.c
index fb7b63be9d1305c14a91252205b6c8ba7a264a49..8802404c9a6ba916d13c118124d6a99aec54bbf7 100644 (file)
@@ -202,17 +202,24 @@ FmpSetImage (
                   (VOID **)&SystemFmp\r
                   );\r
   if (EFI_ERROR(Status)) {\r
-    DEBUG((DEBUG_INFO, "(Agent)SetImage - SystemFmpProtocol - %r\n", Status));\r
-    SystemFmpPrivate->LastAttempt.LastAttemptStatus = LAST_ATTEMPT_STATUS_ERROR_INVALID_FORMAT;\r
-    VarStatus = gRT->SetVariable(\r
-                       SYSTEM_FMP_LAST_ATTEMPT_VARIABLE_NAME,\r
-                       &gSystemFmpLastAttemptVariableGuid,\r
-                       EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,\r
-                       sizeof(SystemFmpPrivate->LastAttempt),\r
-                       &SystemFmpPrivate->LastAttempt\r
-                       );\r
-    DEBUG((DEBUG_INFO, "(Agent)SetLastAttemp - %r\n", VarStatus));\r
-    return Status;\r
+    Status = gBS->LocateProtocol (\r
+                    &gSystemFmpProtocolGuid,\r
+                    NULL,\r
+                    (VOID **)&SystemFmp\r
+                    );\r
+    if (EFI_ERROR(Status)) {\r
+      DEBUG((DEBUG_INFO, "(Agent)SetImage - SystemFmpProtocol - %r\n", Status));\r
+      SystemFmpPrivate->LastAttempt.LastAttemptStatus = LAST_ATTEMPT_STATUS_ERROR_INVALID_FORMAT;\r
+      VarStatus = gRT->SetVariable(\r
+                         SYSTEM_FMP_LAST_ATTEMPT_VARIABLE_NAME,\r
+                         &gSystemFmpLastAttemptVariableGuid,\r
+                         EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS,\r
+                         sizeof(SystemFmpPrivate->LastAttempt),\r
+                         &SystemFmpPrivate->LastAttempt\r
+                         );\r
+      DEBUG((DEBUG_INFO, "(Agent)SetLastAttemp - %r\n", VarStatus));\r
+      return Status;\r
+    }\r
   }\r
 \r
   return SystemFmp->SetImage(SystemFmp, ImageIndex, Image, ImageSize, VendorCode, Progress, AbortReason);\r