Date
1 - 2 of 2
[PATCH v2 1/1] MdeModulePkg/PiSmmCore: Drop deprecated image profiling commands
Ni, Ray
Thank you very much!!
toggle quoted messageShow quoted text
Reviewed-by: Ray Ni <ray.ni@...> I will merge your patches after stable tag release.
-----Original Message-----
|
|
Marvin Häuser
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@...> Cc: Hao A Wu <hao.a.wu@...> Cc: Eric Dong <eric.dong@...> Cc: Ray Ni <ray.ni@...> Cc: Vitaly Cheptsov <vit9696@...> Signed-off-by: Marvin Häuser <mhaeuser@...> --- 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
|
|