]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Library/DxeCorePerformanceLib/DxeCorePerformanceLib.c
Ensure the validity of Ffs Sections when adding a new Sections to Ffs.
[mirror_edk2.git] / EdkModulePkg / Library / DxeCorePerformanceLib / DxeCorePerformanceLib.c
index d2417234abaefbffcd58981845b1104b18ec7171..268a6a04f24b445a33098040489710fba4c40cb7 100644 (file)
@@ -214,7 +214,6 @@ StartGauge (
   UINTN                     GaugeDataSize;\r
   UINTN                     OldGaugeDataSize;\r
   GAUGE_DATA_HEADER         *OldGaugeData;\r
-  EFI_STATUS                Status;\r
   UINT32                    Index;\r
 \r
   Index = mGaugeData->NumberOfEntries;\r
@@ -230,14 +229,14 @@ StartGauge (
     \r
     mGaugeData = AllocateZeroPool (GaugeDataSize);\r
     if (mGaugeData == NULL) {\r
-      return EFI_OUT_OF_MEMORY;\r
+      return EFI_OUT_OF_RESOURCES;\r
     }\r
     //\r
     // Initialize new data arry and migrate old data one. \r
     //\r
     mGaugeData = CopyMem (mGaugeData, OldGaugeData, OldGaugeDataSize);\r
     \r
-    gBS->FreePool (OldGaugeData); \r
+    FreePool (OldGaugeData); \r
   }\r
   \r
   GaugeEntryArray               = (GAUGE_DATA_ENTRY *) (mGaugeData + 1);\r
@@ -422,10 +421,15 @@ DxeCorePerformanceLibConstructor (
 {\r
   EFI_STATUS                Status;\r
 \r
+  if (!PerformanceMeasurementEnabled ()) {\r
+    //\r
+    // Do not initialize performance infrastructure if not required.\r
+    //\r
+    return EFI_SUCCESS;\r
+  }\r
   //\r
   // Install the protocol interfaces.\r
   //\r
-  Handle = NULL;\r
   Status = gBS->InstallProtocolInterface (\r
                   &mHandle,\r
                   &gPerformanceProtocolGuid,\r
@@ -434,7 +438,7 @@ DxeCorePerformanceLibConstructor (
                   );\r
   ASSERT_EFI_ERROR (Status);\r
 \r
-  mMaxGaugeRecords = INIT_DXE_GAUGE_DATA_ENTRIES + MAX_PEI_PERFORMANCE_LOG_ENTRIES;\r
+  mMaxGaugeRecords = INIT_DXE_GAUGE_DATA_ENTRIES + PcdGet8 (PcdMaxPeiPerformanceLogEntries);\r
 \r
   mGaugeData = AllocateZeroPool (sizeof (GAUGE_DATA_HEADER) + (sizeof (GAUGE_DATA_ENTRY) * mMaxGaugeRecords));\r
   ASSERT (mGaugeData != NULL);\r