[edk2-devel] [PATCH v2 1/1] MdeModulePkg/PiSmmCore: Drop deprecated image profiling commands

Ni, Ray ray.ni at intel.com
Tue Aug 10 02:45:05 UTC 2021


Thank you very much!!

Reviewed-by: Ray Ni <ray.ni at intel.com>

I will merge your patches after stable tag release.

> -----Original Message-----
> From: devel at edk2.groups.io <devel at edk2.groups.io> On Behalf Of Marvin Häuser
> Sent: Monday, August 9, 2021 2:09 PM
> To: devel at edk2.groups.io
> Cc: Wang, Jian J <jian.j.wang at intel.com>; Wu, Hao A <hao.a.wu at intel.com>; Dong, Eric <eric.dong at intel.com>; Ni, Ray
> <ray.ni at intel.com>; Vitaly Cheptsov <vit9696 at protonmail.com>
> Subject: [edk2-devel] [PATCH v2 1/1] MdeModulePkg/PiSmmCore: Drop deprecated image profiling commands
> 
> 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 at intel.com>
> Cc: Hao A Wu <hao.a.wu at intel.com>
> Cc: Eric Dong <eric.dong at intel.com>
> Cc: Ray Ni <ray.ni at intel.com>
> Cc: Vitaly Cheptsov <vit9696 at protonmail.com>
> Signed-off-by: Marvin Häuser <mhaeuser at 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 (#79002): https://edk2.groups.io/g/devel/message/79002
Mute This Topic: https://groups.io/mt/84762964/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-






More information about the edk2-devel-archive mailing list