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 A2204803A0 for ; Thu, 9 Mar 2017 23:39:46 -0800 (PST) Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Mar 2017 23:39:46 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.36,139,1486454400"; d="scan'208";a="1106922548" Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202]) by orsmga001.jf.intel.com with ESMTP; 09 Mar 2017 23:39:46 -0800 Received: from fmsmsx153.amr.corp.intel.com (10.18.125.6) by fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS) id 14.3.248.2; Thu, 9 Mar 2017 23:39:46 -0800 Received: from shsmsx101.ccr.corp.intel.com (10.239.4.153) by FMSMSX153.amr.corp.intel.com (10.18.125.6) with Microsoft SMTP Server (TLS) id 14.3.248.2; Thu, 9 Mar 2017 23:39:45 -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:39: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/ylw2k6gpf0p5o2ZhaGNJUsAgACKioA= Date: Fri, 10 Mar 2017 07:39: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: <74D8A39837DF1E4DA445A8C0B3885C503A901BF4@shsmsx102.ccr.corp.intel.com> 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:39:46 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable > -----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 >=20 > I just find it is unnecessary to put > mDxeRuntimeCapsuleLibVirtualAddressChangeEvent and > mIsVirtualAddrConverted to DxeCapsuleLib.c. > Can we just move them to DxeCapsuleLibRuntime.c? >=20 > I think this is simple update. No need to send V3. > You can do that when check in. >=20 > Reviewed-by: Jiewen Yao Got it, I will move them before checking in the code. Best Regards, Hao Wu >=20 > Thank you > Yao Jiewen >=20 >=20 > > -----Original Message----- > > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of = 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 imag= e. > > + @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.<= BR> > > # This program and the accompanying materials > > # are licensed and made available under the terms and conditions of t= he > BSD > > License > > # which accompanies this distribution. The full text of the license = 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 by = 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 th= e BSD > > License > > which accompanies this distribution. The full text of the license m= ay 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 imag= e. > > + @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.<= BR> > > # This program and the accompanying materials > > # are licensed and made available under the terms and conditions of t= he > BSD > > License > > # which accompanies this distribution. The full text of the license = 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 by = 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