From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 04074803A0 for ; Thu, 9 Mar 2017 23:45:35 -0800 (PST) Received: from orsmga003.jf.intel.com ([10.7.209.27]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Mar 2017 23:45:35 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.36,139,1486454400"; d="scan'208";a="942759525" Received: from fmsmsx103.amr.corp.intel.com ([10.18.124.201]) by orsmga003.jf.intel.com with ESMTP; 09 Mar 2017 23:45:35 -0800 Received: from fmsmsx102.amr.corp.intel.com (10.18.124.200) by FMSMSX103.amr.corp.intel.com (10.18.124.201) with Microsoft SMTP Server (TLS) id 14.3.248.2; Thu, 9 Mar 2017 23:45:35 -0800 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by FMSMSX102.amr.corp.intel.com (10.18.124.200) with Microsoft SMTP Server (TLS) id 14.3.248.2; Thu, 9 Mar 2017 23:45:34 -0800 Received: from shsmsx104.ccr.corp.intel.com ([169.254.5.59]) by SHSMSX101.ccr.corp.intel.com ([169.254.1.177]) with mapi id 14.03.0248.002; Fri, 10 Mar 2017 15:45:32 +0800 From: "Wu, Hao A" To: "Yao, Jiewen" , "edk2-devel@lists.01.org" Thread-Topic: [edk2] [PATCH v2 1/2] MdeModulePkg/CapsuleLib: Add lib destructors to handle unclosed events Thread-Index: AQHSmW5CA9+H/ylw2k6gpf0p5o2ZhaGNJUsAgACKioCAAADhEA== Date: Fri, 10 Mar 2017 07:45:32 +0000 Message-ID: References: <20170310071628.10044-1-hao.a.wu@intel.com> <20170310071628.10044-2-hao.a.wu@intel.com> <74D8A39837DF1E4DA445A8C0B3885C503A901BF4@shsmsx102.ccr.corp.intel.com> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH v2 1/2] MdeModulePkg/CapsuleLib: Add lib destructors to handle unclosed events 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: Fri, 10 Mar 2017 07:45:36 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Wu= , > Hao A > Sent: Friday, March 10, 2017 3:40 PM > To: Yao, Jiewen; edk2-devel@lists.01.org > Subject: Re: [edk2] [PATCH v2 1/2] MdeModulePkg/CapsuleLib: Add lib > destructors to handle unclosed events >=20 > > -----Original Message----- > > From: Yao, Jiewen > > Sent: Friday, March 10, 2017 3:23 PM > > To: Wu, Hao A; edk2-devel@lists.01.org > > Cc: Wu, Hao A > > Subject: RE: [edk2] [PATCH v2 1/2] MdeModulePkg/CapsuleLib: Add lib > > destructors to handle unclosed events > > > > I just find it is unnecessary to put > > mDxeRuntimeCapsuleLibVirtualAddressChangeEvent and > > mIsVirtualAddrConverted to DxeCapsuleLib.c. > > Can we just move them to DxeCapsuleLibRuntime.c? > > > > I think this is simple update. No need to send V3. > > You can do that when check in. > > > > Reviewed-by: Jiewen Yao >=20 > Got it, I will move them before checking in the code. I double checked the code, it seems that 'mEsrtTable' is only used in file DxeCapsuleRuntime.c as well, I will move it from DxeCapsuleLib.c as well. >=20 > Best Regards, > Hao Wu >=20 > > > > Thank you > > Yao Jiewen > > > > > > > -----Original Message----- > > > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf O= f > Hao > > > Wu > > > Sent: Friday, March 10, 2017 3:16 PM > > > To: edk2-devel@lists.01.org > > > Cc: Wu, Hao A > > > Subject: [edk2] [PATCH v2 1/2] MdeModulePkg/CapsuleLib: Add lib > > destructors > > > to handle unclosed events > > > > > > Contributed-under: TianoCore Contribution Agreement 1.0 > > > Signed-off-by: Hao Wu > > > Reviewed-by: Jiewen Yao > > > --- > > > MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleLib.c | 37 > > > +++++++++++++++++--- > > > MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleLib.inf | 3 = +- > > > MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleRuntime.c | 33 > > > ++++++++++++++--- > > > MdeModulePkg/Library/DxeCapsuleLibFmp/DxeRuntimeCapsuleLib.inf | 4 > > > ++- > > > 4 files changed, 66 insertions(+), 11 deletions(-) > > > > > > diff --git a/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleLib.c > > > b/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleLib.c > > > index 7f500a96eb..a892892ccd 100644 > > > --- a/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleLib.c > > > +++ b/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleLib.c > > > @@ -47,9 +47,11 @@ > > > #include > > > #include > > > > > > -EFI_SYSTEM_RESOURCE_TABLE *mEsrtTable =3D NULL; > > > -BOOLEAN mIsVirtualAddrConverted =3D FALSE; > > > -BOOLEAN mDxeCapsuleLibEndOfDxe =3D FALSE; > > > +EFI_SYSTEM_RESOURCE_TABLE *mEsrtTable > > > =3D NULL; > > > +BOOLEAN mIsVirtualAddrConverted > > > =3D FALSE; > > > +BOOLEAN mDxeCapsuleLibEndOfDxe > > > =3D FALSE; > > > +EFI_EVENT mDxeCapsuleLibEndOfDxeEvent > > > =3D NULL; > > > +EFI_EVENT > > > mDxeRuntimeCapsuleLibVirtualAddressChangeEvent =3D NULL; > > > > > > /** > > > Initialize capsule related variables. > > > @@ -1654,7 +1656,6 @@ DxeCapsuleLibConstructor ( > > > IN EFI_SYSTEM_TABLE *SystemTable > > > ) > > > { > > > - EFI_EVENT EndOfDxeEvent; > > > EFI_STATUS Status; > > > > > > Status =3D gBS->CreateEventEx ( > > > @@ -1663,7 +1664,7 @@ DxeCapsuleLibConstructor ( > > > DxeCapsuleLibEndOfDxe, > > > NULL, > > > &gEfiEndOfDxeEventGroupGuid, > > > - &EndOfDxeEvent > > > + &mDxeCapsuleLibEndOfDxeEvent > > > ); > > > ASSERT_EFI_ERROR (Status); > > > > > > @@ -1671,3 +1672,29 @@ DxeCapsuleLibConstructor ( > > > > > > return EFI_SUCCESS; > > > } > > > + > > > +/** > > > + The destructor function closes the End of DXE event. > > > + > > > + @param ImageHandle The firmware allocated handle for the EFI > image. > > > + @param SystemTable A pointer to the EFI System Table. > > > + > > > + @retval EFI_SUCCESS The destructor completed successfully. > > > +**/ > > > +EFI_STATUS > > > +EFIAPI > > > +DxeCapsuleLibDestructor ( > > > + IN EFI_HANDLE ImageHandle, > > > + IN EFI_SYSTEM_TABLE *SystemTable > > > + ) > > > +{ > > > + EFI_STATUS Status; > > > + > > > + // > > > + // Close the End of DXE event. > > > + // > > > + Status =3D gBS->CloseEvent (mDxeCapsuleLibEndOfDxeEvent); > > > + ASSERT_EFI_ERROR (Status); > > > + > > > + return EFI_SUCCESS; > > > +} > > > diff --git a/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleLib.inf > > > b/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleLib.inf > > > index 5e437dc418..a6cf54cb6b 100644 > > > --- a/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleLib.inf > > > +++ b/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleLib.inf > > > @@ -3,7 +3,7 @@ > > > # > > > # Capsule library instance for DXE_DRIVER module types. > > > # > > > -# Copyright (c) 2016, Intel Corporation. All rights reserved.
> > > +# Copyright (c) 2016 - 2017, 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 licens= e may be > > > found at > > > @@ -23,6 +23,7 @@ > > > VERSION_STRING =3D 1.0 > > > LIBRARY_CLASS =3D CapsuleLib|DXE_DRIVER > > > UEFI_APPLICATION > > > CONSTRUCTOR =3D DxeCapsuleLibConstructor > > > + DESTRUCTOR =3D DxeCapsuleLibDestructor > > > > > > # > > > # The following information is for reference only and not required b= y the > > build > > > tools. > > > diff --git > a/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleRuntime.c > > > b/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleRuntime.c > > > index 880143905a..513aa533e1 100644 > > > --- a/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleRuntime.c > > > +++ b/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeCapsuleRuntime.c > > > @@ -1,7 +1,7 @@ > > > /** @file > > > Capsule library runtime support. > > > > > > - Copyright (c) 2016, Intel Corporation. All rights reserved.
> > > + Copyright (c) 2016 - 2017, 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 > > > @@ -28,6 +28,7 @@ > > > > > > extern EFI_SYSTEM_RESOURCE_TABLE *mEsrtTable; > > > extern BOOLEAN mIsVirtualAddrConverted; > > > +extern EFI_EVENT > > > mDxeRuntimeCapsuleLibVirtualAddressChangeEvent; > > > > > > /** > > > Convert EsrtTable physical address to virtual address. > > > @@ -92,21 +93,45 @@ DxeRuntimeCapsuleLibConstructor ( > > > ) > > > { > > > EFI_STATUS Status; > > > - EFI_EVENT Event; > > > > > > // > > > // Make sure we can handle virtual address changes. > > > // > > > - Event =3D NULL; > > > Status =3D gBS->CreateEventEx ( > > > EVT_NOTIFY_SIGNAL, > > > TPL_NOTIFY, > > > DxeCapsuleLibVirtualAddressChangeEvent, > > > NULL, > > > &gEfiEventVirtualAddressChangeGuid, > > > - &Event > > > + &mDxeRuntimeCapsuleLibVirtualAddressChangeEvent > > > ); > > > ASSERT_EFI_ERROR (Status); > > > > > > return EFI_SUCCESS; > > > } > > > + > > > +/** > > > + The destructor function closes the VirtualAddressChange event. > > > + > > > + @param ImageHandle The firmware allocated handle for the EFI > image. > > > + @param SystemTable A pointer to the EFI System Table. > > > + > > > + @retval EFI_SUCCESS The destructor completed successfully. > > > +**/ > > > +EFI_STATUS > > > +EFIAPI > > > +DxeRuntimeCapsuleLibDestructor ( > > > + IN EFI_HANDLE ImageHandle, > > > + IN EFI_SYSTEM_TABLE *SystemTable > > > + ) > > > +{ > > > + EFI_STATUS Status; > > > + > > > + // > > > + // Close the VirtualAddressChange event. > > > + // > > > + Status =3D gBS->CloseEvent > > > (mDxeRuntimeCapsuleLibVirtualAddressChangeEvent); > > > + ASSERT_EFI_ERROR (Status); > > > + > > > + return EFI_SUCCESS; > > > +} > > > diff --git > > > a/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeRuntimeCapsuleLib.inf > > > b/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeRuntimeCapsuleLib.inf > > > index 47c67ccac5..25b7d51f57 100644 > > > --- a/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeRuntimeCapsuleLib.inf > > > +++ > b/MdeModulePkg/Library/DxeCapsuleLibFmp/DxeRuntimeCapsuleLib.inf > > > @@ -3,7 +3,7 @@ > > > # > > > # Capsule library instance for DXE_RUNTIME_DRIVER module types. > > > # > > > -# Copyright (c) 2016, Intel Corporation. All rights reserved.
> > > +# Copyright (c) 2016 - 2017, 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 licens= e may be > > > found at > > > @@ -24,6 +24,8 @@ > > > LIBRARY_CLASS =3D CapsuleLib|DXE_RUNTIME_DRIVER > > > CONSTRUCTOR =3D DxeCapsuleLibConstructor > > > CONSTRUCTOR =3D DxeRuntimeCapsuleLibConstructor > > > + DESTRUCTOR =3D DxeCapsuleLibDestructor > > > + DESTRUCTOR =3D DxeRuntimeCapsuleLibDestructor > > > > > > # > > > # The following information is for reference only and not required b= y the > > build > > > tools. > > > -- > > > 2.12.0.windows.1 > > > > > > _______________________________________________ > > > edk2-devel mailing list > > > edk2-devel@lists.01.org > > > https://lists.01.org/mailman/listinfo/edk2-devel > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel