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.w...@intel.com>
Cc: Hao A Wu <hao.a...@intel.com>
Cc: Eric Dong <eric.d...@intel.com>
Cc: Ray Ni <ray...@intel.com>
Cc: Vitaly Cheptsov <vit9...@protonmail.com>
Signed-off-by: Marvin Häuser <mhaeu...@posteo.de>
---
 MdeModulePkg/Core/PiSmmCore/SmramProfileRecord.c | 89 ++------------------
 MdeModulePkg/Include/Guid/MemoryProfile.h        |  6 +-
 2 files changed, 12 insertions(+), 83 deletions(-)

diff --git a/MdeModulePkg/Core/PiSmmCore/SmramProfileRecord.c 
b/MdeModulePkg/Core/PiSmmCore/SmramProfileRecord.c
index 1b302c810cc9..9d6e3bf27aca 100644
--- a/MdeModulePkg/Core/PiSmmCore/SmramProfileRecord.c
+++ b/MdeModulePkg/Core/PiSmmCore/SmramProfileRecord.c
@@ -2232,64 +2232,6 @@ Done:
   mSmramProfileGettingStatus = SmramProfileGettingStatus;

 }

 

-/**

-  SMRAM profile handler to register SMM image.

-

-  @param SmramProfileParameterRegisterImage The parameter of SMM profile 
register image.

-

-**/

-VOID

-SmramProfileHandlerRegisterImage (

-  IN SMRAM_PROFILE_PARAMETER_REGISTER_IMAGE *SmramProfileParameterRegisterImage

-  )

-{

-  EFI_STATUS                        Status;

-  EFI_SMM_DRIVER_ENTRY              DriverEntry;

-  VOID                              *EntryPointInImage;

-

-  ZeroMem (&DriverEntry, sizeof (DriverEntry));

-  CopyMem (&DriverEntry.FileName, 
&SmramProfileParameterRegisterImage->FileName, sizeof(EFI_GUID));

-  DriverEntry.ImageBuffer = SmramProfileParameterRegisterImage->ImageBuffer;

-  DriverEntry.NumberOfPage = (UINTN) 
SmramProfileParameterRegisterImage->NumberOfPage;

-  Status = InternalPeCoffGetEntryPoint ((VOID *) (UINTN) 
DriverEntry.ImageBuffer, &EntryPointInImage);

-  ASSERT_EFI_ERROR (Status);

-  DriverEntry.ImageEntryPoint = (PHYSICAL_ADDRESS) (UINTN) EntryPointInImage;

-

-  Status = RegisterSmramProfileImage (&DriverEntry, FALSE);

-  if (!EFI_ERROR (Status)) {

-    SmramProfileParameterRegisterImage->Header.ReturnStatus = 0;

-  }

-}

-

-/**

-  SMRAM profile handler to unregister SMM image.

-

-  @param SmramProfileParameterUnregisterImage The parameter of SMM profile 
unregister image.

-

-**/

-VOID

-SmramProfileHandlerUnregisterImage (

-  IN SMRAM_PROFILE_PARAMETER_UNREGISTER_IMAGE 
*SmramProfileParameterUnregisterImage

-  )

-{

-  EFI_STATUS                        Status;

-  EFI_SMM_DRIVER_ENTRY              DriverEntry;

-  VOID                              *EntryPointInImage;

-

-  ZeroMem (&DriverEntry, sizeof (DriverEntry));

-  CopyMem (&DriverEntry.FileName, 
&SmramProfileParameterUnregisterImage->FileName, sizeof (EFI_GUID));

-  DriverEntry.ImageBuffer = SmramProfileParameterUnregisterImage->ImageBuffer;

-  DriverEntry.NumberOfPage = (UINTN) 
SmramProfileParameterUnregisterImage->NumberOfPage;

-  Status = InternalPeCoffGetEntryPoint ((VOID *) (UINTN) 
DriverEntry.ImageBuffer, &EntryPointInImage);

-  ASSERT_EFI_ERROR (Status);

-  DriverEntry.ImageEntryPoint = (PHYSICAL_ADDRESS) (UINTN) EntryPointInImage;

-

-  Status = UnregisterSmramProfileImage (&DriverEntry, FALSE);

-  if (!EFI_ERROR (Status)) {

-    SmramProfileParameterUnregisterImage->Header.ReturnStatus = 0;

-  }

-}

-

 /**

   Dispatch function for a Software SMI handler.

 

@@ -2374,28 +2316,6 @@ SmramProfileHandler (
     }

     SmramProfileHandlerGetDataByOffset 
((SMRAM_PROFILE_PARAMETER_GET_PROFILE_DATA_BY_OFFSET *) (UINTN) CommBuffer);

     break;

-  case SMRAM_PROFILE_COMMAND_REGISTER_IMAGE:

-    DEBUG ((EFI_D_ERROR, "SmramProfileHandlerRegisterImage\n"));

-    if (TempCommBufferSize != sizeof (SMRAM_PROFILE_PARAMETER_REGISTER_IMAGE)) 
{

-      DEBUG ((EFI_D_ERROR, "SmramProfileHandler: SMM communication buffer size 
invalid!\n"));

-      return EFI_SUCCESS;

-    }

-    if (mSmramReadyToLock) {

-      return EFI_SUCCESS;

-    }

-    SmramProfileHandlerRegisterImage ((SMRAM_PROFILE_PARAMETER_REGISTER_IMAGE 
*) (UINTN) CommBuffer);

-    break;

-  case SMRAM_PROFILE_COMMAND_UNREGISTER_IMAGE:

-    DEBUG ((EFI_D_ERROR, "SmramProfileHandlerUnregisterImage\n"));

-    if (TempCommBufferSize != sizeof 
(SMRAM_PROFILE_PARAMETER_UNREGISTER_IMAGE)) {

-      DEBUG ((EFI_D_ERROR, "SmramProfileHandler: SMM communication buffer size 
invalid!\n"));

-      return EFI_SUCCESS;

-    }

-    if (mSmramReadyToLock) {

-      return EFI_SUCCESS;

-    }

-    SmramProfileHandlerUnregisterImage 
((SMRAM_PROFILE_PARAMETER_UNREGISTER_IMAGE *) (UINTN) CommBuffer);

-    break;

   case SMRAM_PROFILE_COMMAND_GET_RECORDING_STATE:

     DEBUG ((EFI_D_ERROR, "SmramProfileHandlerGetRecordingState\n"));

     if (TempCommBufferSize != sizeof 
(SMRAM_PROFILE_PARAMETER_RECORDING_STATE)) {

@@ -2417,6 +2337,15 @@ SmramProfileHandler (
     ParameterRecordingState->Header.ReturnStatus = 0;

     break;

 

+  //

+  // Below 2 commands have been deprecated. They may not be (re-)used.

+  //

+  case SMRAM_PROFILE_COMMAND_DEPRECATED1:

+  case SMRAM_PROFILE_COMMAND_DEPRECATED2:

+    ASSERT (FALSE);

+    //

+    // Fall-through to the default (unrecognized command) case.

+    //

   default:

     break;

   }

diff --git a/MdeModulePkg/Include/Guid/MemoryProfile.h 
b/MdeModulePkg/Include/Guid/MemoryProfile.h
index eee3b9125240..7565e68b5c33 100644
--- a/MdeModulePkg/Include/Guid/MemoryProfile.h
+++ b/MdeModulePkg/Include/Guid/MemoryProfile.h
@@ -389,10 +389,10 @@ struct _EDKII_MEMORY_PROFILE_PROTOCOL {
 #define SMRAM_PROFILE_COMMAND_GET_PROFILE_INFO           0x1

 #define SMRAM_PROFILE_COMMAND_GET_PROFILE_DATA           0x2

 //

-// Below 2 commands are now used by ECP only and only valid before 
SmmReadyToLock

+// Below 2 commands have been deprecated. They may not be re-used.

 //

-#define SMRAM_PROFILE_COMMAND_REGISTER_IMAGE             0x3

-#define SMRAM_PROFILE_COMMAND_UNREGISTER_IMAGE           0x4

+#define SMRAM_PROFILE_COMMAND_DEPRECATED1                0x3

+#define SMRAM_PROFILE_COMMAND_DEPRECATED2                0x4

 

 #define SMRAM_PROFILE_COMMAND_GET_PROFILE_DATA_BY_OFFSET 0x5

 #define SMRAM_PROFILE_COMMAND_GET_RECORDING_STATE        0x6

-- 
2.31.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#78924): https://edk2.groups.io/g/devel/message/78924
Mute This Topic: https://groups.io/mt/84762964/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to