From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) (using TLSv1 with cipher CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id F1A081A1E3A for ; Mon, 24 Oct 2016 02:15:52 -0700 (PDT) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga104.fm.intel.com with ESMTP; 24 Oct 2016 02:15:52 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,541,1473145200"; d="scan'208";a="1049136225" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga001.jf.intel.com with ESMTP; 24 Oct 2016 02:15:52 -0700 Received: from fmsmsx111.amr.corp.intel.com (10.18.116.5) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.248.2; Mon, 24 Oct 2016 02:15:52 -0700 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by fmsmsx111.amr.corp.intel.com (10.18.116.5) with Microsoft SMTP Server (TLS) id 14.3.248.2; Mon, 24 Oct 2016 02:15:51 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.206]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.104]) with mapi id 14.03.0248.002; Mon, 24 Oct 2016 17:15:49 +0800 From: "Gao, Liming" To: "Zeng, Star" , "edk2-devel@lists.01.org" CC: "Zeng, Star" Thread-Topic: [edk2] [PATCH] MdePkg PeiServicesLib: Make sure FvInfo has FFS2 format if FvFormat == NULL Thread-Index: AQHSLbL6kJ4wTLkKaUGGaQYUGrWMt6C3UqiA Date: Mon, 24 Oct 2016 09:15:49 +0000 Message-ID: <4A89E2EF3DFEDB4C8BFDE51014F606A14B49879B@shsmsx102.ccr.corp.intel.com> References: <1477284969-38320-1-git-send-email-star.zeng@intel.com> In-Reply-To: <1477284969-38320-1-git-send-email-star.zeng@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH] MdePkg PeiServicesLib: Make sure FvInfo has FFS2 format if FvFormat == NULL X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Oct 2016 09:15:53 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Star: Besides this patch, I think PeiCore also requires to add this check to ma= ke sure FvInfo and FvImage match each other, because PPI may directly be in= stalled from PEI module, not from this library API.=20 Thanks Liming > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of > Star Zeng > Sent: Monday, October 24, 2016 12:56 PM > To: edk2-devel@lists.01.org > Cc: Gao, Liming ; Zeng, Star > Subject: [edk2] [PATCH] MdePkg PeiServicesLib: Make sure FvInfo has FFS2 > format if FvFormat =3D=3D NULL >=20 > Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3D160 >=20 > Cc: Liming Gao > Cc: Sean Brogan > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Star Zeng > --- > MdePkg/Library/PeiServicesLib/PeiServicesLib.c | 15 ++++++++++++++- > 1 file changed, 14 insertions(+), 1 deletion(-) >=20 > diff --git a/MdePkg/Library/PeiServicesLib/PeiServicesLib.c > b/MdePkg/Library/PeiServicesLib/PeiServicesLib.c > index 3428addcc63b..2373251bc3e5 100644 > --- a/MdePkg/Library/PeiServicesLib/PeiServicesLib.c > +++ b/MdePkg/Library/PeiServicesLib/PeiServicesLib.c > @@ -1,7 +1,7 @@ > /** @file > Implementation for PEI Services Library. >=20 > - Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.
> + Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.
> This program and the accompanying materials > are licensed and made available under the terms and conditions of the = BSD > License > which accompanies this distribution. The full text of the license may= be > found at > @@ -574,6 +574,7 @@ PeiServicesFfsGetVolumeInfo ( > the parameters passed in to initialize the fields of the > EFI_PEI_FIRMWARE_VOLUME_INFO(2)_PPI instance. > If the resources can not be allocated for > EFI_PEI_FIRMWARE_VOLUME_INFO(2)_PPI, then ASSERT(). > If the EFI_PEI_FIRMWARE_VOLUME_INFO(2)_PPI can not be installed, > then ASSERT(). > + If NULL is specified for FvFormat, but FvInfo does not have the firmwa= re > file system 2 format, then ASSERT. >=20 > @param InstallFvInfoPpi Install FvInfo Ppi if it is TRUE. Otherwi= se, install > FvInfo2 Ppi. > @param FvFormat Unique identifier of the format of the me= mory- > mapped > @@ -640,6 +641,16 @@ InternalPeiServicesInstallFvInfoPpi ( > CopyGuid (&FvInfoPpi->FvFormat, FvFormat); > } else { > CopyGuid (&FvInfoPpi->FvFormat, &gEfiFirmwareFileSystem2Guid); > + // > + // Since the EFI_FIRMWARE_FILE_SYSTEM2_GUID format is assumed if > NULL is specified for FvFormat, > + // check the FileSystemGuid pointed by FvInfo against > EFI_FIRMWARE_FILE_SYSTEM2_GUID to make sure > + // FvInfo has the firmware file system 2 format. > + // If the ASSERT really appears, FvFormat needs to be specified corr= ectly, > for example, > + // EFI_FIRMWARE_FILE_SYSTEM3_GUID can be used for firmware file > system 3 format, or > + // &(((EFI_FIRMWARE_VOLUME_HEADER *) FvInfo)->FileSystemGuid can > be just used for both > + // firmware file system 2 and 3 format. > + // > + ASSERT (CompareGuid (&(((EFI_FIRMWARE_VOLUME_HEADER *) > FvInfo)->FileSystemGuid), &gEfiFirmwareFileSystem2Guid)); > } > FvInfoPpi->FvInfo =3D (VOID *) FvInfo; > FvInfoPpi->FvInfoSize =3D FvInfoSize; > @@ -672,6 +683,7 @@ InternalPeiServicesInstallFvInfoPpi ( > the parameters passed in to initialize the fields of the > EFI_PEI_FIRMWARE_VOLUME_INFO_PPI instance. > If the resources can not be allocated for > EFI_PEI_FIRMWARE_VOLUME_INFO_PPI, then ASSERT(). > If the EFI_PEI_FIRMWARE_VOLUME_INFO_PPI can not be installed, then > ASSERT(). > + If NULL is specified for FvFormat, but FvInfo does not have the firmwa= re > file system 2 format, then ASSERT. >=20 > @param FvFormat Unique identifier of the format of the me= mory- > mapped > firmware volume. This parameter is optio= nal and > @@ -714,6 +726,7 @@ PeiServicesInstallFvInfoPpi ( > the parameters passed in to initialize the fields of the > EFI_PEI_FIRMWARE_VOLUME_INFO2_PPI instance. > If the resources can not be allocated for > EFI_PEI_FIRMWARE_VOLUME_INFO2_PPI, then ASSERT(). > If the EFI_PEI_FIRMWARE_VOLUME_INFO2_PPI can not be installed, then > ASSERT(). > + If NULL is specified for FvFormat, but FvInfo does not have the firmwa= re > file system 2 format, then ASSERT. >=20 > @param FvFormat Unique identifier of the format of the me= mory- > mapped > firmware volume. This parameter is optio= nal and > -- > 2.7.0.windows.1 >=20 > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel