Hi, On 7/26/19 5:10 AM, Xu, Wei6 wrote: > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2012 > > When driver is unloaded, the ExitBootSerivesEvent must be closed at > the same time. Otherwise exception will occur when ExitBootServices. > > Cc: Michael D Kinney <michael.d.kin...@intel.com> > Cc: Liming Gao <liming....@intel.com> > Signed-off-by: Wei6 Xu <wei6...@intel.com> > --- > .../UefiDebugLibConOut/DebugLibConstructor.c | 23 > ++++++++++++++++++++++ > .../UefiDebugLibConOut/UefiDebugLibConOut.inf | 1 + > 2 files changed, 24 insertions(+) > > diff --git a/MdePkg/Library/UefiDebugLibConOut/DebugLibConstructor.c > b/MdePkg/Library/UefiDebugLibConOut/DebugLibConstructor.c > index 8005370372..ed73f92818 100644 > --- a/MdePkg/Library/UefiDebugLibConOut/DebugLibConstructor.c > +++ b/MdePkg/Library/UefiDebugLibConOut/DebugLibConstructor.c > @@ -73,5 +73,28 @@ DxeDebugLibConstructor( > &mExitBootServicesEvent > ); > > return EFI_SUCCESS; > } > + > +/** > + The destructor closes Exit Boot Services 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 always returns EFI_SUCCESS. > + > +**/ > +EFI_STATUS > +EFIAPI > +DxeDebugLibDestructor( > + IN EFI_HANDLE ImageHandle, > + IN EFI_SYSTEM_TABLE *SystemTable > + ) > +{ > + if (mExitBootServicesEvent != NULL) { > + SystemTable->BootServices->CloseEvent (mExitBootServicesEvent); > + }
Is it OK to let mDebugST (pointer to SystemTable) initialized? > + > + return EFI_SUCCESS; > +} > diff --git a/MdePkg/Library/UefiDebugLibConOut/UefiDebugLibConOut.inf > b/MdePkg/Library/UefiDebugLibConOut/UefiDebugLibConOut.inf > index 4c279a5bf2..b577d52ac6 100644 > --- a/MdePkg/Library/UefiDebugLibConOut/UefiDebugLibConOut.inf > +++ b/MdePkg/Library/UefiDebugLibConOut/UefiDebugLibConOut.inf > @@ -20,10 +20,11 @@ > MODULE_TYPE = UEFI_DRIVER > VERSION_STRING = 1.0 > LIBRARY_CLASS = DebugLib|DXE_CORE DXE_DRIVER > DXE_RUNTIME_DRIVER UEFI_APPLICATION UEFI_DRIVER > > CONSTRUCTOR = DxeDebugLibConstructor > + DESTRUCTOR = DxeDebugLibDestructor > > # > # VALID_ARCHITECTURES = IA32 X64 EBC > # > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#44522): https://edk2.groups.io/g/devel/message/44522 Mute This Topic: https://groups.io/mt/32605738/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-