]> git.proxmox.com Git - mirror_edk2.git/commitdiff
MdeModulePkg/PiSmmCore: Drop deprecated image profiling commands
authorMarvin H?user <mhaeuser@posteo.de>
Mon, 9 Aug 2021 06:09:25 +0000 (14:09 +0800)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Wed, 1 Sep 2021 04:58:21 +0000 (04:58 +0000)
The legacy codebase allowed SMM images to be registered for profiling
from DXE. Support for this has been dropped entirely, so remove the
remaining handlers.

Cc: Jian J Wang <jian.j.wang@intel.com>
Cc: Hao A Wu <hao.a.wu@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Cc: Vitaly Cheptsov <vit9696@protonmail.com>
Signed-off-by: Marvin H?user <mhaeuser@posteo.de>
MdeModulePkg/Core/PiSmmCore/SmramProfileRecord.c
MdeModulePkg/Include/Guid/MemoryProfile.h

index 1b302c810cc927d6757a088ef7ac98896d9190d2..9d6e3bf27aca301b5a8512a8406daaa0d650ddbb 100644 (file)
@@ -2232,64 +2232,6 @@ Done:
   mSmramProfileGettingStatus = SmramProfileGettingStatus;\r
 }\r
 \r
-/**\r
-  SMRAM profile handler to register SMM image.\r
-\r
-  @param SmramProfileParameterRegisterImage The parameter of SMM profile register image.\r
-\r
-**/\r
-VOID\r
-SmramProfileHandlerRegisterImage (\r
-  IN SMRAM_PROFILE_PARAMETER_REGISTER_IMAGE *SmramProfileParameterRegisterImage\r
-  )\r
-{\r
-  EFI_STATUS                        Status;\r
-  EFI_SMM_DRIVER_ENTRY              DriverEntry;\r
-  VOID                              *EntryPointInImage;\r
-\r
-  ZeroMem (&DriverEntry, sizeof (DriverEntry));\r
-  CopyMem (&DriverEntry.FileName, &SmramProfileParameterRegisterImage->FileName, sizeof(EFI_GUID));\r
-  DriverEntry.ImageBuffer = SmramProfileParameterRegisterImage->ImageBuffer;\r
-  DriverEntry.NumberOfPage = (UINTN) SmramProfileParameterRegisterImage->NumberOfPage;\r
-  Status = InternalPeCoffGetEntryPoint ((VOID *) (UINTN) DriverEntry.ImageBuffer, &EntryPointInImage);\r
-  ASSERT_EFI_ERROR (Status);\r
-  DriverEntry.ImageEntryPoint = (PHYSICAL_ADDRESS) (UINTN) EntryPointInImage;\r
-\r
-  Status = RegisterSmramProfileImage (&DriverEntry, FALSE);\r
-  if (!EFI_ERROR (Status)) {\r
-    SmramProfileParameterRegisterImage->Header.ReturnStatus = 0;\r
-  }\r
-}\r
-\r
-/**\r
-  SMRAM profile handler to unregister SMM image.\r
-\r
-  @param SmramProfileParameterUnregisterImage The parameter of SMM profile unregister image.\r
-\r
-**/\r
-VOID\r
-SmramProfileHandlerUnregisterImage (\r
-  IN SMRAM_PROFILE_PARAMETER_UNREGISTER_IMAGE *SmramProfileParameterUnregisterImage\r
-  )\r
-{\r
-  EFI_STATUS                        Status;\r
-  EFI_SMM_DRIVER_ENTRY              DriverEntry;\r
-  VOID                              *EntryPointInImage;\r
-\r
-  ZeroMem (&DriverEntry, sizeof (DriverEntry));\r
-  CopyMem (&DriverEntry.FileName, &SmramProfileParameterUnregisterImage->FileName, sizeof (EFI_GUID));\r
-  DriverEntry.ImageBuffer = SmramProfileParameterUnregisterImage->ImageBuffer;\r
-  DriverEntry.NumberOfPage = (UINTN) SmramProfileParameterUnregisterImage->NumberOfPage;\r
-  Status = InternalPeCoffGetEntryPoint ((VOID *) (UINTN) DriverEntry.ImageBuffer, &EntryPointInImage);\r
-  ASSERT_EFI_ERROR (Status);\r
-  DriverEntry.ImageEntryPoint = (PHYSICAL_ADDRESS) (UINTN) EntryPointInImage;\r
-\r
-  Status = UnregisterSmramProfileImage (&DriverEntry, FALSE);\r
-  if (!EFI_ERROR (Status)) {\r
-    SmramProfileParameterUnregisterImage->Header.ReturnStatus = 0;\r
-  }\r
-}\r
-\r
 /**\r
   Dispatch function for a Software SMI handler.\r
 \r
@@ -2374,28 +2316,6 @@ SmramProfileHandler (
     }\r
     SmramProfileHandlerGetDataByOffset ((SMRAM_PROFILE_PARAMETER_GET_PROFILE_DATA_BY_OFFSET *) (UINTN) CommBuffer);\r
     break;\r
-  case SMRAM_PROFILE_COMMAND_REGISTER_IMAGE:\r
-    DEBUG ((EFI_D_ERROR, "SmramProfileHandlerRegisterImage\n"));\r
-    if (TempCommBufferSize != sizeof (SMRAM_PROFILE_PARAMETER_REGISTER_IMAGE)) {\r
-      DEBUG ((EFI_D_ERROR, "SmramProfileHandler: SMM communication buffer size invalid!\n"));\r
-      return EFI_SUCCESS;\r
-    }\r
-    if (mSmramReadyToLock) {\r
-      return EFI_SUCCESS;\r
-    }\r
-    SmramProfileHandlerRegisterImage ((SMRAM_PROFILE_PARAMETER_REGISTER_IMAGE *) (UINTN) CommBuffer);\r
-    break;\r
-  case SMRAM_PROFILE_COMMAND_UNREGISTER_IMAGE:\r
-    DEBUG ((EFI_D_ERROR, "SmramProfileHandlerUnregisterImage\n"));\r
-    if (TempCommBufferSize != sizeof (SMRAM_PROFILE_PARAMETER_UNREGISTER_IMAGE)) {\r
-      DEBUG ((EFI_D_ERROR, "SmramProfileHandler: SMM communication buffer size invalid!\n"));\r
-      return EFI_SUCCESS;\r
-    }\r
-    if (mSmramReadyToLock) {\r
-      return EFI_SUCCESS;\r
-    }\r
-    SmramProfileHandlerUnregisterImage ((SMRAM_PROFILE_PARAMETER_UNREGISTER_IMAGE *) (UINTN) CommBuffer);\r
-    break;\r
   case SMRAM_PROFILE_COMMAND_GET_RECORDING_STATE:\r
     DEBUG ((EFI_D_ERROR, "SmramProfileHandlerGetRecordingState\n"));\r
     if (TempCommBufferSize != sizeof (SMRAM_PROFILE_PARAMETER_RECORDING_STATE)) {\r
@@ -2417,6 +2337,15 @@ SmramProfileHandler (
     ParameterRecordingState->Header.ReturnStatus = 0;\r
     break;\r
 \r
+  //\r
+  // Below 2 commands have been deprecated. They may not be (re-)used.\r
+  //\r
+  case SMRAM_PROFILE_COMMAND_DEPRECATED1:\r
+  case SMRAM_PROFILE_COMMAND_DEPRECATED2:\r
+    ASSERT (FALSE);\r
+    //\r
+    // Fall-through to the default (unrecognized command) case.\r
+    //\r
   default:\r
     break;\r
   }\r
index eee3b91252409a2d4e5d1b64346b86741ad0e544..7565e68b5c334372fa7a6af2be78e7161117275f 100644 (file)
@@ -389,10 +389,10 @@ struct _EDKII_MEMORY_PROFILE_PROTOCOL {
 #define SMRAM_PROFILE_COMMAND_GET_PROFILE_INFO           0x1\r
 #define SMRAM_PROFILE_COMMAND_GET_PROFILE_DATA           0x2\r
 //\r
-// Below 2 commands are now used by ECP only and only valid before SmmReadyToLock\r
+// Below 2 commands have been deprecated. They may not be re-used.\r
 //\r
-#define SMRAM_PROFILE_COMMAND_REGISTER_IMAGE             0x3\r
-#define SMRAM_PROFILE_COMMAND_UNREGISTER_IMAGE           0x4\r
+#define SMRAM_PROFILE_COMMAND_DEPRECATED1                0x3\r
+#define SMRAM_PROFILE_COMMAND_DEPRECATED2                0x4\r
 \r
 #define SMRAM_PROFILE_COMMAND_GET_PROFILE_DATA_BY_OFFSET 0x5\r
 #define SMRAM_PROFILE_COMMAND_GET_RECORDING_STATE        0x6\r