On 03/11/2015 22:00, Laszlo Ersek wrote:
> In SVN r15306 (git commit d4ba06df), "OvmfPkg: S3 Resume: fake LockBox
> protocol for BootScriptExecutorDxe", we installed a fake LockBox protocol
> in OVMF's AcpiS3SaveDxe clone. While our other AcpiS3SaveDxe
> customizations remain valid (or harmless), said change is invalid when
> OVMF is built with -D SMM_REQUIRE and includes the real protocol provider,
> "MdeModulePkg/Universal/LockBox/SmmLockBox/SmmLockBox.inf".
> 
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Laszlo Ersek <ler...@redhat.com>
> ---
>  OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf |  3 ++-
>  OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.c      | 14 ++++++++------
>  2 files changed, 10 insertions(+), 7 deletions(-)
> 
> diff --git a/OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf 
> b/OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf
> index 4cc0713..a288b95 100644
> --- a/OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf
> +++ b/OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf
> @@ -59,7 +59,7 @@ [Guids]
>    gEfiEndOfDxeEventGroupGuid                    ## CONSUMES  ## Event
>  
>  [Protocols]
> -  gEfiLockBoxProtocolGuid                       # PROTOCOL ALWAYS_PRODUCED
> +  gEfiLockBoxProtocolGuid                       # PROTOCOL SOMETIMES_PRODUCED
>    gEfiLegacyBiosProtocolGuid                    # PROTOCOL ALWAYS_CONSUMED
>    gEfiLegacyRegion2ProtocolGuid                 # PROTOCOL SOMETIMES_CONSUMED
>    gFrameworkEfiMpServiceProtocolGuid            # PROTOCOL SOMETIMES_CONSUMED
> @@ -71,6 +71,7 @@ [Pcd]
>    gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdS3AcpiReservedMemorySize    
> ## CONSUMES
>    gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdS3BootScriptStackSize       
> ## CONSUMES
>    gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable
> +  gUefiOvmfPkgTokenSpaceGuid.PcdSmmSmramRequire                            
> ## CONSUMES
>  
>  [Depex]
>    gEfiVariableArchProtocolGuid AND gEfiVariableWriteArchProtocolGuid
> diff --git a/OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.c 
> b/OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.c
> index f20560f..e3ff234 100644
> --- a/OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.c
> +++ b/OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.c
> @@ -538,12 +538,14 @@ InstallEndOfDxeCallback (
>      return EFI_LOAD_ERROR;
>    }
>  
> -  Status = gBS->InstallMultipleProtocolInterfaces (
> -                  &ImageHandle,
> -                  &gEfiLockBoxProtocolGuid, NULL,
> -                  NULL
> -                  );
> -  ASSERT_EFI_ERROR (Status);
> +  if (!FeaturePcdGet (PcdSmmSmramRequire)) {
> +    Status = gBS->InstallMultipleProtocolInterfaces (
> +                    &ImageHandle,
> +                    &gEfiLockBoxProtocolGuid, NULL,
> +                    NULL
> +                    );
> +    ASSERT_EFI_ERROR (Status);
> +  }
>  
>    Status = gBS->CreateEventEx (
>                    EVT_NOTIFY_SIGNAL,
> 

Reviewed-by: Paolo Bonzini <pbonz...@redhat.com>
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to