public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Laszlo Ersek <lersek@redhat.com>
To: Hao Wu <hao.a.wu@intel.com>, edk2-devel@lists.01.org
Cc: Star Zeng <star.zeng@intel.com>
Subject: Re: [PATCH v3 10/12] MdeModulePkg/SmmLockBox(PEI): Remove an ASSERT in RestoreLockBox()
Date: Fri, 1 Feb 2019 10:17:47 +0100	[thread overview]
Message-ID: <1d5d58ca-50d8-e365-7507-8666f7eebdde@redhat.com> (raw)
In-Reply-To: <20190201054728.8612-11-hao.a.wu@intel.com>

On 02/01/19 06:47, Hao Wu wrote:
> This commit is out of the scope for BZ-1409. It is a refinement for the
> PEI library instance within SmmLockBoxLib.
> 
> For the below ASSERT statement within function RestoreLockBox():
>   Status = SmmCommunicationPpi->Communicate (
>                                   SmmCommunicationPpi,
>                                   &CommBuffer[0],
>                                   &CommSize
>                                   );
>   if (Status == EFI_NOT_STARTED) {
>     //
>     // Pei SMM communication not ready yet, so we access SMRAM directly
>     //
>     DEBUG ((DEBUG_INFO, "SmmLockBoxPeiLib Communicate - (%r)\n", Status));
>     Status = InternalRestoreLockBoxFromSmram (Guid, Buffer, Length);
>     LockBoxParameterRestore->Header.ReturnStatus = (UINT64)Status;
>     if (Length != NULL) {
>       LockBoxParameterRestore->Length = (UINT64)*Length;
>     }
>   }
>   ASSERT_EFI_ERROR (Status);
> 
> It is possible for previous codes to return an error status that is
> possible for happen. One example is that, when the 'if' statement
> 'if (Status == EFI_NOT_STARTED) {' is entered, function
> InternalRestoreLockBoxFromSmram() is possible to return 'BUFFER_TOO_SMALL'
> if the caller of RestoreLockBox() provides a buffer that is too small to
> hold the content of LockBox.
> 
> Thus, this commit will remove the ASSERT here.
> 
> Please note that the current implementation of RestoreLockBox() is
> handling the above-mentioned error case properly, so no additional error
> handling codes are needed here.
> 
> Cc: Jian J Wang <jian.j.wang@intel.com>
> Cc: Star Zeng <star.zeng@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Hao Wu <hao.a.wu@intel.com>
> Reviewed-by: Ray Ni <ray.ni@intel.com>
> ---
>  MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxPeiLib.c | 1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxPeiLib.c b/MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxPeiLib.c
> index 9f73480070..8c3e65bc96 100644
> --- a/MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxPeiLib.c
> +++ b/MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxPeiLib.c
> @@ -623,7 +623,6 @@ RestoreLockBox (
>        LockBoxParameterRestore->Length = (UINT64)*Length;
>      }
>    }
> -  ASSERT_EFI_ERROR (Status);
>  
>    if (Length != NULL) {
>      *Length = (UINTN)LockBoxParameterRestore->Length;
> 

OVMF never reaches this code path because it doesn't include an
EFI_PEI_SMM_COMMUNICATION_PPI instance. Therefore OVMF always goes
through InternalRestoreLockBoxFromSmram().

See commit bd3afeb1d62c ("MdeModulePkg: SmmLockBoxPeiLib: work without
EFI_PEI_SMM_COMMUNICATION_PPI", 2015-11-16).

In that regard, I'm OK with this patch; this alone would suffice for me
to give an Acked-by.

However, having re-reviewed bd3afeb1d62c now, I see that this patch is
actually technically correct. So I believe I can give an R-b too,
despite OVMF not using the affected code path.

Reviewed-by: Laszlo Ersek <lersek@redhat.com>

Other than that, you might want to review existing callers of this
function, to ensure they don't rely on any such failure being caught
internally to the function (via the ASSERT that's now being removed).
Again, this would only be relevant for platforms that produce an
EFI_PEI_SMM_COMMUNICATION_PPI instance.

Thanks
Laszlo


  reply	other threads:[~2019-02-01  9:17 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-01  5:47 [PATCH v3 00/12] Split the S3 PEI phase HW init codes from Opal driver Hao Wu
2019-02-01  5:47 ` [PATCH v3 01/12] MdeModulePkg: Add definitions for ATA AHCI host controller PPI Hao Wu
2019-02-01  5:47 ` [PATCH v3 02/12] MdeModulePkg: Add definitions for EDKII PEI ATA PassThru PPI Hao Wu
2019-02-01  5:47 ` [PATCH v3 03/12] MdeModulePkg: Add definitions for Storage Security Command PPI Hao Wu
2019-02-01  5:47 ` [PATCH v3 04/12] MdeModulePkg: Add GUID for LockBox to save storage dev to init in S3 Hao Wu
2019-02-01  5:47 ` [PATCH v3 05/12] MdeModulePkg/NvmExpressPei: Avoid updating the module-level variable Hao Wu
2019-02-01  5:47 ` [PATCH v3 06/12] MdeModulePkg/NvmExpressPei: Add logic to produce SSC PPI Hao Wu
2019-02-01  5:47 ` [PATCH v3 07/12] MdeModulePkg/NvmExpressPei: Consume S3StorageDeviceInitList LockBox Hao Wu
2019-02-01  5:47 ` [PATCH v3 08/12] MdeModulePkg/AhciPei: Add AHCI mode ATA device support in PEI Hao Wu
2019-02-01  5:47 ` [PATCH v3 09/12] MdeModulePkg/SmmLockBoxLib: Use 'DEBUG_' prefix instead of 'EFI_D_' Hao Wu
2019-02-01  9:04   ` Laszlo Ersek
2019-02-01  5:47 ` [PATCH v3 10/12] MdeModulePkg/SmmLockBox(PEI): Remove an ASSERT in RestoreLockBox() Hao Wu
2019-02-01  9:17   ` Laszlo Ersek [this message]
2019-02-01 10:54     ` Wu, Hao A
2019-02-01  5:47 ` [PATCH v3 11/12] MdeModulePkg/SmmLockBoxLib: Support LockBox enlarge in UpdateLockBox() Hao Wu
2019-02-01  7:52   ` Ni, Ray
2019-02-01  9:39   ` Laszlo Ersek
2019-02-01 11:03     ` Wu, Hao A
2019-02-01  5:47 ` [PATCH v3 12/12] SecurityPkg/OpalPassword: Remove HW init codes and consume SSC PPI Hao Wu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1d5d58ca-50d8-e365-7507-8666f7eebdde@redhat.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox