]> git.proxmox.com Git - mirror_edk2.git/commitdiff
UefiCpuPkg/S3Resume2Pei: Handle Communicate Ppi not exist issue.
authorEric Dong <eric.dong@intel.com>
Thu, 12 Oct 2017 08:31:58 +0000 (16:31 +0800)
committerEric Dong <eric.dong@intel.com>
Fri, 13 Oct 2017 05:12:00 +0000 (13:12 +0800)
Current code assume Communicate Ppi always existed, so it adds
ASSERT to confirm it. Ovmf platform happened not has this Ppi, so
the ASSERT been trig. This patch handle Ppi not existed case.

Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Eric Dong <eric.dong@intel.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
UefiCpuPkg/Universal/Acpi/S3Resume2Pei/S3Resume.c

index c2171cbd4641d4d4b6fffe2ac662127f9241de1e..e0c2d366cd0de86918bc0e52d935656a7c39d273 100644 (file)
@@ -465,7 +465,7 @@ SignalEndOfS3Resume (
   SMM_COMMUNICATE_HEADER_64          Header64;\r
   VOID                               *CommBuffer;\r
 \r
-  DEBUG ((EFI_D_INFO, "SignalEndOfS3Resume - Enter\n"));\r
+  DEBUG ((DEBUG_INFO, "SignalEndOfS3Resume - Enter\n"));\r
 \r
   //\r
   // This buffer consumed in DXE phase, so base on DXE mode to prepare communicate buffer.\r
@@ -484,29 +484,27 @@ SignalEndOfS3Resume (
   }\r
   CopyGuid (CommBuffer, &gEdkiiSmmEndOfS3ResumeProtocolGuid);\r
 \r
-  //\r
-  // Get needed resource\r
-  //\r
   Status = PeiServicesLocatePpi (\r
              &gEfiPeiSmmCommunicationPpiGuid,\r
              0,\r
              NULL,\r
              (VOID **)&SmmCommunicationPpi\r
              );\r
-  ASSERT_EFI_ERROR (Status);\r
+  if (EFI_ERROR (Status)) {\r
+    DEBUG ((DEBUG_ERROR, "Locate Smm Communicate Ppi failed (%r)!\n", Status));\r
+    return Status;\r
+  }\r
 \r
-  //\r
-  // Send command\r
-  //\r
   Status = SmmCommunicationPpi->Communicate (\r
                                   SmmCommunicationPpi,\r
                                   (VOID *)CommBuffer,\r
                                   &CommSize\r
                                   );\r
-  ASSERT_EFI_ERROR (Status);\r
-\r
-  DEBUG ((EFI_D_INFO, "SignalEndOfS3Resume - Exit (%r)\n", Status));\r
+  if (EFI_ERROR (Status)) {\r
+    DEBUG ((DEBUG_ERROR, "SmmCommunicationPpi->Communicate return failure (%r)!\n", Status));\r
+  }\r
 \r
+  DEBUG ((DEBUG_INFO, "SignalEndOfS3Resume - Exit (%r)\n", Status));\r
   return Status;\r
 }\r
 \r
@@ -587,8 +585,7 @@ S3ResumeBootOs (
   //\r
   // Signal EndOfS3Resume event.\r
   //\r
-  Status = SignalEndOfS3Resume ();\r
-  ASSERT_EFI_ERROR (Status);\r
+  SignalEndOfS3Resume ();\r
 \r
   //\r
   // report status code on S3 resume\r