* [Patch][edk2-stable201908 0/2] EmulatorPkg/Win/Host: Fix image unload regression @ 2019-08-22 2:36 Michael D Kinney 2019-08-22 2:36 ` [Patch][edk2-stable201908 1/2] " Michael D Kinney ` (2 more replies) 0 siblings, 3 replies; 10+ messages in thread From: Michael D Kinney @ 2019-08-22 2:36 UTC (permalink / raw) To: devel; +Cc: Jordan Justen, Ray Ni, Andrew Fish, Tim Lewis https://bugzilla.tianocore.org/show_bug.cgi?id=2104 When UEFI Applications or UEFI Drivers are unloaded, the PeCoffLoaderUnloadImageExtraAction() needs to unload the image using FreeLibrary() if the image was successfully loaded using LoadLibrrayEx(). This is a regression from the Nt32Pkg that supported unloading applications and drivers as well as loading the same application or driver multiple times. Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Ray Ni <ray.ni@intel.com> Cc: Andrew Fish <afish@apple.com> Cc: Tim Lewis <tim.lewis@insyde.com> Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Michael D Kinney (2): EmulatorPkg/Win/Host: Fix image unload regression EmulatorPkg/Win/Host: Fix SecPrint() log line endings EmulatorPkg/Win/Host/WinHost.c | 193 +++++++++++++++++++++++++++++---- 1 file changed, 174 insertions(+), 19 deletions(-) -- 2.21.0.windows.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* [Patch][edk2-stable201908 1/2] EmulatorPkg/Win/Host: Fix image unload regression 2019-08-22 2:36 [Patch][edk2-stable201908 0/2] EmulatorPkg/Win/Host: Fix image unload regression Michael D Kinney @ 2019-08-22 2:36 ` Michael D Kinney 2019-08-22 23:10 ` [edk2-devel] " Ni, Ray 2019-08-22 2:36 ` [Patch][edk2-stable201908 2/2] EmulatorPkg/Win/Host: Fix SecPrint() log line endings Michael D Kinney 2019-08-26 19:31 ` [Patch][edk2-stable201908 0/2] EmulatorPkg/Win/Host: Fix image unload regression Tim Lewis 2 siblings, 1 reply; 10+ messages in thread From: Michael D Kinney @ 2019-08-22 2:36 UTC (permalink / raw) To: devel; +Cc: Jordan Justen, Ray Ni, Andrew Fish, Tim Lewis https://bugzilla.tianocore.org/show_bug.cgi?id=2104 When UEFI Applications or UEFI Drivers are unloaded, the PeCoffLoaderUnloadImageExtraAction() needs to unload the image using FreeLibrary() if the image was successfully loaded using LoadLibrrayEx(). This is a regression from the Nt32Pkg that supported unloading applications and drivers as well as loading the same application or driver multiple times. Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Ray Ni <ray.ni@intel.com> Cc: Andrew Fish <afish@apple.com> Cc: Tim Lewis <tim.lewis@insyde.com> Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> --- EmulatorPkg/Win/Host/WinHost.c | 167 +++++++++++++++++++++++++++++++-- 1 file changed, 161 insertions(+), 6 deletions(-) diff --git a/EmulatorPkg/Win/Host/WinHost.c b/EmulatorPkg/Win/Host/WinHost.c index dd52075f98..9c6acac279 100644 --- a/EmulatorPkg/Win/Host/WinHost.c +++ b/EmulatorPkg/Win/Host/WinHost.c @@ -19,6 +19,25 @@ SPDX-License-Identifier: BSD-2-Clause-Patent #define SE_TIME_ZONE_NAME TEXT("SeTimeZonePrivilege") #endif +// +// The growth size for array of module handle entries +// +#define MAX_PDB_NAME_TO_MOD_HANDLE_ARRAY_SIZE 0x100 + +// +// Module handle entry structure +// +typedef struct { + CHAR8 *PdbPointer; + VOID *ModHandle; +} PDB_NAME_TO_MOD_HANDLE; + +// +// An Array to hold the module handles +// +PDB_NAME_TO_MOD_HANDLE *mPdbNameModHandleArray = NULL; +UINTN mPdbNameModHandleArraySize = 0; + // // Default information about where the FD is located. // This array gets filled in with information from PcdWinNtFirmwareVolume @@ -840,6 +859,120 @@ Returns: return Count; } +/** + Store the ModHandle in an array indexed by the Pdb File name. + The ModHandle is needed to unload the image. + @param ImageContext - Input data returned from PE Laoder Library. Used to find the + .PDB file name of the PE Image. + @param ModHandle - Returned from LoadLibraryEx() and stored for call to + FreeLibrary(). + @return return EFI_SUCCESS when ModHandle was stored. +--*/ +EFI_STATUS +AddModHandle ( + IN PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext, + IN VOID *ModHandle + ) + +{ + UINTN Index; + PDB_NAME_TO_MOD_HANDLE *Array; + UINTN PreviousSize; + PDB_NAME_TO_MOD_HANDLE *TempArray; + HANDLE Handle; + UINTN Size; + + // + // Return EFI_ALREADY_STARTED if this DLL has already been loaded + // + Array = mPdbNameModHandleArray; + for (Index = 0; Index < mPdbNameModHandleArraySize; Index++, Array++) { + if (Array->PdbPointer != NULL && Array->ModHandle == ModHandle) { + return EFI_ALREADY_STARTED; + } + } + + Array = mPdbNameModHandleArray; + for (Index = 0; Index < mPdbNameModHandleArraySize; Index++, Array++) { + if (Array->PdbPointer == NULL) { + // + // Make a copy of the stirng and store the ModHandle + // + Handle = GetProcessHeap (); + Size = AsciiStrLen (ImageContext->PdbPointer) + 1; + Array->PdbPointer = HeapAlloc ( Handle, HEAP_ZERO_MEMORY, Size); + ASSERT (Array->PdbPointer != NULL); + + AsciiStrCpyS (Array->PdbPointer, Size, ImageContext->PdbPointer); + Array->ModHandle = ModHandle; + return EFI_SUCCESS; + } + } + + // + // No free space in mPdbNameModHandleArray so grow it by + // MAX_PDB_NAME_TO_MOD_HANDLE_ARRAY_SIZE entires. + // + PreviousSize = mPdbNameModHandleArraySize * sizeof (PDB_NAME_TO_MOD_HANDLE); + mPdbNameModHandleArraySize += MAX_PDB_NAME_TO_MOD_HANDLE_ARRAY_SIZE; + // + // re-allocate a new buffer and copy the old values to the new locaiton. + // + TempArray = HeapAlloc (GetProcessHeap (), + HEAP_ZERO_MEMORY, + mPdbNameModHandleArraySize * sizeof (PDB_NAME_TO_MOD_HANDLE) + ); + + CopyMem ((VOID *) (UINTN) TempArray, (VOID *) (UINTN)mPdbNameModHandleArray, PreviousSize); + + HeapFree (GetProcessHeap (), 0, mPdbNameModHandleArray); + + mPdbNameModHandleArray = TempArray; + if (mPdbNameModHandleArray == NULL) { + ASSERT (FALSE); + return EFI_OUT_OF_RESOURCES; + } + + return AddModHandle (ImageContext, ModHandle); +} + +/** + Return the ModHandle and delete the entry in the array. + @param ImageContext - Input data returned from PE Laoder Library. Used to find the + .PDB file name of the PE Image. + @return + ModHandle - ModHandle assoicated with ImageContext is returned + NULL - No ModHandle associated with ImageContext +**/ +VOID * +RemoveModHandle ( + IN PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext + ) +{ + UINTN Index; + PDB_NAME_TO_MOD_HANDLE *Array; + + if (ImageContext->PdbPointer == NULL) { + // + // If no PDB pointer there is no ModHandle so return NULL + // + return NULL; + } + + Array = mPdbNameModHandleArray; + for (Index = 0; Index < mPdbNameModHandleArraySize; Index++, Array++) { + if ((Array->PdbPointer != NULL) && (AsciiStrCmp(Array->PdbPointer, ImageContext->PdbPointer) == 0)) { + // + // If you find a match return it and delete the entry + // + HeapFree (GetProcessHeap (), 0, Array->PdbPointer); + Array->PdbPointer = NULL; + return Array->ModHandle; + } + } + + return NULL; +} VOID EFIAPI @@ -847,6 +980,7 @@ PeCoffLoaderRelocateImageExtraAction ( IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext ) { + EFI_STATUS Status; VOID *DllEntryPoint; CHAR16 *DllFileName; HMODULE Library; @@ -855,7 +989,7 @@ PeCoffLoaderRelocateImageExtraAction ( ASSERT (ImageContext != NULL); // // If we load our own PE COFF images the Windows debugger can not source - // level debug our code. If a valid PDB pointer exists usw it to load + // level debug our code. If a valid PDB pointer exists use it to load // the *.dll file as a library using Windows* APIs. This allows // source level debug. The image is still loaded and relocated // in the Framework memory space like on a real system (by the code above), @@ -913,10 +1047,22 @@ PeCoffLoaderRelocateImageExtraAction ( } if ((Library != NULL) && (DllEntryPoint != NULL)) { - ImageContext->EntryPoint = (EFI_PHYSICAL_ADDRESS) (UINTN) DllEntryPoint; - SecPrint ("LoadLibraryEx (%S,\n NULL, DONT_RESOLVE_DLL_REFERENCES)\n", DllFileName); + Status = AddModHandle (ImageContext, Library); + if (Status == EFI_ALREADY_STARTED) { + // + // If the DLL has already been loaded before, then this instance of the DLL can not be debugged. + // + ImageContext->PdbPointer = NULL; + SecPrint ("WARNING: DLL already loaded. No source level debug %S.\n\r", DllFileName); + } else { + // + // This DLL is not already loaded, so source level debugging is supported. + // + ImageContext->EntryPoint = (EFI_PHYSICAL_ADDRESS) (UINTN) DllEntryPoint; + SecPrint ("LoadLibraryEx (\n\r %S,\n\r NULL, DONT_RESOLVE_DLL_REFERENCES)\n\r", DllFileName); + } } else { - SecPrint ("WARNING: No source level debug %S. \n", DllFileName); + SecPrint ("WARNING: No source level debug %S. \n\r", DllFileName); } free (DllFileName); @@ -926,13 +1072,22 @@ PeCoffLoaderRelocateImageExtraAction ( VOID EFIAPI PeCoffLoaderUnloadImageExtraAction ( - IN PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext + IN PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext ) { + VOID *ModHandle; + ASSERT (ImageContext != NULL); + + ModHandle = RemoveModHandle (ImageContext); + if (ModHandle != NULL) { + FreeLibrary (ModHandle); + SecPrint ("FreeLibrary (\n\r %s)\n\r", ImageContext->PdbPointer); + } else { + SecPrint ("WARNING: Unload image without source level debug\n\r"); + } } - VOID _ModuleEntryPoint ( VOID -- 2.21.0.windows.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [edk2-devel] [Patch][edk2-stable201908 1/2] EmulatorPkg/Win/Host: Fix image unload regression 2019-08-22 2:36 ` [Patch][edk2-stable201908 1/2] " Michael D Kinney @ 2019-08-22 23:10 ` Ni, Ray 0 siblings, 0 replies; 10+ messages in thread From: Ni, Ray @ 2019-08-22 23:10 UTC (permalink / raw) To: devel@edk2.groups.io, Kinney, Michael D Cc: Justen, Jordan L, Andrew Fish, Tim Lewis Mike, Thanks for fixing this regression issue. I also did a comparison between this and the Nt32 accordingly code. They are almost the same. I also noticed your unit test steps in Bugzilla and the behavior is expected. I agree and also suggest that this fix to be included in the coming stable tag release. Reviewed-by: Ray Ni <ray.ni@intel.com> > -----Original Message----- > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Michael D > Kinney > Sent: Thursday, August 22, 2019 10:36 AM > To: devel@edk2.groups.io > Cc: Justen, Jordan L <jordan.l.justen@intel.com>; Ni, Ray <ray.ni@intel.com>; > Andrew Fish <afish@apple.com>; Tim Lewis <tim.lewis@insyde.com> > Subject: [edk2-devel] [Patch][edk2-stable201908 1/2] EmulatorPkg/Win/Host: > Fix image unload regression > > https://bugzilla.tianocore.org/show_bug.cgi?id=2104 > > When UEFI Applications or UEFI Drivers are unloaded, the > PeCoffLoaderUnloadImageExtraAction() needs to unload the image using > FreeLibrary() if the image was successfully loaded using LoadLibrrayEx(). > > This is a regression from the Nt32Pkg that supported unloading applications and > drivers as well as loading the same application or driver multiple times. > > Cc: Jordan Justen <jordan.l.justen@intel.com> > Cc: Ray Ni <ray.ni@intel.com> > Cc: Andrew Fish <afish@apple.com> > Cc: Tim Lewis <tim.lewis@insyde.com> > Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> > --- > EmulatorPkg/Win/Host/WinHost.c | 167 > +++++++++++++++++++++++++++++++-- > 1 file changed, 161 insertions(+), 6 deletions(-) > > diff --git a/EmulatorPkg/Win/Host/WinHost.c > b/EmulatorPkg/Win/Host/WinHost.c index dd52075f98..9c6acac279 100644 > --- a/EmulatorPkg/Win/Host/WinHost.c > +++ b/EmulatorPkg/Win/Host/WinHost.c > @@ -19,6 +19,25 @@ SPDX-License-Identifier: BSD-2-Clause-Patent > #define SE_TIME_ZONE_NAME TEXT("SeTimeZonePrivilege") > #endif > > +// > +// The growth size for array of module handle entries // #define > +MAX_PDB_NAME_TO_MOD_HANDLE_ARRAY_SIZE 0x100 > + > +// > +// Module handle entry structure > +// > +typedef struct { > + CHAR8 *PdbPointer; > + VOID *ModHandle; > +} PDB_NAME_TO_MOD_HANDLE; > + > +// > +// An Array to hold the module handles > +// > +PDB_NAME_TO_MOD_HANDLE *mPdbNameModHandleArray = NULL; > +UINTN mPdbNameModHandleArraySize = 0; > + > // > // Default information about where the FD is located. > // This array gets filled in with information from PcdWinNtFirmwareVolume > @@ -840,6 +859,120 @@ Returns: > return Count; > } > > +/** > + Store the ModHandle in an array indexed by the Pdb File name. > + The ModHandle is needed to unload the image. > + @param ImageContext - Input data returned from PE Laoder Library. Used to > find the > + .PDB file name of the PE Image. > + @param ModHandle - Returned from LoadLibraryEx() and stored for call to > + FreeLibrary(). > + @return return EFI_SUCCESS when ModHandle was stored. > +--*/ > +EFI_STATUS > +AddModHandle ( > + IN PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext, > + IN VOID *ModHandle > + ) > + > +{ > + UINTN Index; > + PDB_NAME_TO_MOD_HANDLE *Array; > + UINTN PreviousSize; > + PDB_NAME_TO_MOD_HANDLE *TempArray; > + HANDLE Handle; > + UINTN Size; > + > + // > + // Return EFI_ALREADY_STARTED if this DLL has already been loaded // > + Array = mPdbNameModHandleArray; for (Index = 0; Index < > + mPdbNameModHandleArraySize; Index++, Array++) { > + if (Array->PdbPointer != NULL && Array->ModHandle == ModHandle) { > + return EFI_ALREADY_STARTED; > + } > + } > + > + Array = mPdbNameModHandleArray; > + for (Index = 0; Index < mPdbNameModHandleArraySize; Index++, Array++) { > + if (Array->PdbPointer == NULL) { > + // > + // Make a copy of the stirng and store the ModHandle > + // > + Handle = GetProcessHeap (); > + Size = AsciiStrLen (ImageContext->PdbPointer) + 1; > + Array->PdbPointer = HeapAlloc ( Handle, HEAP_ZERO_MEMORY, Size); > + ASSERT (Array->PdbPointer != NULL); > + > + AsciiStrCpyS (Array->PdbPointer, Size, ImageContext->PdbPointer); > + Array->ModHandle = ModHandle; > + return EFI_SUCCESS; > + } > + } > + > + // > + // No free space in mPdbNameModHandleArray so grow it by // > + MAX_PDB_NAME_TO_MOD_HANDLE_ARRAY_SIZE entires. > + // > + PreviousSize = mPdbNameModHandleArraySize * sizeof > + (PDB_NAME_TO_MOD_HANDLE); mPdbNameModHandleArraySize += > + MAX_PDB_NAME_TO_MOD_HANDLE_ARRAY_SIZE; > + // > + // re-allocate a new buffer and copy the old values to the new locaiton. > + // > + TempArray = HeapAlloc (GetProcessHeap (), > + HEAP_ZERO_MEMORY, > + mPdbNameModHandleArraySize * sizeof > (PDB_NAME_TO_MOD_HANDLE) > + ); > + > + CopyMem ((VOID *) (UINTN) TempArray, (VOID *) > + (UINTN)mPdbNameModHandleArray, PreviousSize); > + > + HeapFree (GetProcessHeap (), 0, mPdbNameModHandleArray); > + > + mPdbNameModHandleArray = TempArray; > + if (mPdbNameModHandleArray == NULL) { > + ASSERT (FALSE); > + return EFI_OUT_OF_RESOURCES; > + } > + > + return AddModHandle (ImageContext, ModHandle); } > + > +/** > + Return the ModHandle and delete the entry in the array. > + @param ImageContext - Input data returned from PE Laoder Library. Used > to find the > + .PDB file name of the PE Image. > + @return > + ModHandle - ModHandle assoicated with ImageContext is returned > + NULL - No ModHandle associated with ImageContext > +**/ > +VOID * > +RemoveModHandle ( > + IN PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext > + ) > +{ > + UINTN Index; > + PDB_NAME_TO_MOD_HANDLE *Array; > + > + if (ImageContext->PdbPointer == NULL) { > + // > + // If no PDB pointer there is no ModHandle so return NULL > + // > + return NULL; > + } > + > + Array = mPdbNameModHandleArray; > + for (Index = 0; Index < mPdbNameModHandleArraySize; Index++, Array++) { > + if ((Array->PdbPointer != NULL) && (AsciiStrCmp(Array->PdbPointer, > ImageContext->PdbPointer) == 0)) { > + // > + // If you find a match return it and delete the entry > + // > + HeapFree (GetProcessHeap (), 0, Array->PdbPointer); > + Array->PdbPointer = NULL; > + return Array->ModHandle; > + } > + } > + > + return NULL; > +} > > VOID > EFIAPI > @@ -847,6 +980,7 @@ PeCoffLoaderRelocateImageExtraAction ( > IN OUT PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext > ) > { > + EFI_STATUS Status; > VOID *DllEntryPoint; > CHAR16 *DllFileName; > HMODULE Library; > @@ -855,7 +989,7 @@ PeCoffLoaderRelocateImageExtraAction ( > ASSERT (ImageContext != NULL); > // > // If we load our own PE COFF images the Windows debugger can not source > - // level debug our code. If a valid PDB pointer exists usw it to load > + // level debug our code. If a valid PDB pointer exists use it to > + load > // the *.dll file as a library using Windows* APIs. This allows > // source level debug. The image is still loaded and relocated > // in the Framework memory space like on a real system (by the code above), > @@ -913,10 +1047,22 @@ PeCoffLoaderRelocateImageExtraAction ( > } > > if ((Library != NULL) && (DllEntryPoint != NULL)) { > - ImageContext->EntryPoint = (EFI_PHYSICAL_ADDRESS) (UINTN) > DllEntryPoint; > - SecPrint ("LoadLibraryEx (%S,\n NULL, > DONT_RESOLVE_DLL_REFERENCES)\n", DllFileName); > + Status = AddModHandle (ImageContext, Library); > + if (Status == EFI_ALREADY_STARTED) { > + // > + // If the DLL has already been loaded before, then this instance of the DLL > can not be debugged. > + // > + ImageContext->PdbPointer = NULL; > + SecPrint ("WARNING: DLL already loaded. No source level debug %S.\n\r", > DllFileName); > + } else { > + // > + // This DLL is not already loaded, so source level debugging is supported. > + // > + ImageContext->EntryPoint = (EFI_PHYSICAL_ADDRESS) (UINTN) > DllEntryPoint; > + SecPrint ("LoadLibraryEx (\n\r %S,\n\r NULL, > DONT_RESOLVE_DLL_REFERENCES)\n\r", DllFileName); > + } > } else { > - SecPrint ("WARNING: No source level debug %S. \n", DllFileName); > + SecPrint ("WARNING: No source level debug %S. \n\r", > + DllFileName); > } > > free (DllFileName); > @@ -926,13 +1072,22 @@ PeCoffLoaderRelocateImageExtraAction ( VOID > EFIAPI PeCoffLoaderUnloadImageExtraAction ( > - IN PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext > + IN PE_COFF_LOADER_IMAGE_CONTEXT *ImageContext > ) > { > + VOID *ModHandle; > + > ASSERT (ImageContext != NULL); > + > + ModHandle = RemoveModHandle (ImageContext); if (ModHandle != NULL) { > + FreeLibrary (ModHandle); > + SecPrint ("FreeLibrary (\n\r %s)\n\r", ImageContext->PdbPointer); > + } else { > + SecPrint ("WARNING: Unload image without source level debug\n\r"); > + } > } > > - > VOID > _ModuleEntryPoint ( > VOID > -- > 2.21.0.windows.1 > > > ^ permalink raw reply [flat|nested] 10+ messages in thread
* [Patch][edk2-stable201908 2/2] EmulatorPkg/Win/Host: Fix SecPrint() log line endings 2019-08-22 2:36 [Patch][edk2-stable201908 0/2] EmulatorPkg/Win/Host: Fix image unload regression Michael D Kinney 2019-08-22 2:36 ` [Patch][edk2-stable201908 1/2] " Michael D Kinney @ 2019-08-22 2:36 ` Michael D Kinney 2019-08-22 23:12 ` [edk2-devel] " Ni, Ray 2019-08-26 19:31 ` [Patch][edk2-stable201908 0/2] EmulatorPkg/Win/Host: Fix image unload regression Tim Lewis 2 siblings, 1 reply; 10+ messages in thread From: Michael D Kinney @ 2019-08-22 2:36 UTC (permalink / raw) To: devel; +Cc: Jordan Justen, Ray Ni, Andrew Fish, Tim Lewis Update use of SecPrint() to consistently use \n\r for line endings to fix formatting issues in the debug log. Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Ray Ni <ray.ni@intel.com> Cc: Andrew Fish <afish@apple.com> Cc: Tim Lewis <tim.lewis@insyde.com> Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> --- EmulatorPkg/Win/Host/WinHost.c | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/EmulatorPkg/Win/Host/WinHost.c b/EmulatorPkg/Win/Host/WinHost.c index 9c6acac279..9aba3c8959 100644 --- a/EmulatorPkg/Win/Host/WinHost.c +++ b/EmulatorPkg/Win/Host/WinHost.c @@ -408,7 +408,7 @@ Returns: MemorySizeStr = (CHAR16 *) PcdGetPtr (PcdEmuMemorySize); FirmwareVolumesStr = (CHAR16 *) PcdGetPtr (PcdEmuFirmwareVolume); - SecPrint ("\nEDK II WIN Host Emulation Environment from http://www.tianocore.org/edk2/\n"); + SecPrint ("\n\rEDK II WIN Host Emulation Environment from http://www.tianocore.org/edk2/\n\r"); // // Determine the first thread available to this process. @@ -450,7 +450,7 @@ Returns: gSystemMemoryCount = CountSeparatorsInString (MemorySizeStr, '!') + 1; gSystemMemory = calloc (gSystemMemoryCount, sizeof (NT_SYSTEM_MEMORY)); if (gSystemMemory == NULL) { - SecPrint ("ERROR : Can not allocate memory for %S. Exiting.\n", MemorySizeStr); + SecPrint ("ERROR : Can not allocate memory for %S. Exiting.\n\r", MemorySizeStr); exit (1); } @@ -460,13 +460,13 @@ Returns: gFdInfoCount = CountSeparatorsInString (FirmwareVolumesStr, '!') + 1; gFdInfo = calloc (gFdInfoCount, sizeof (NT_FD_INFO)); if (gFdInfo == NULL) { - SecPrint ("ERROR : Can not allocate memory for %S. Exiting.\n", FirmwareVolumesStr); + SecPrint ("ERROR : Can not allocate memory for %S. Exiting.\n\r", FirmwareVolumesStr); exit (1); } // // Setup Boot Mode. // - SecPrint (" BootMode 0x%02x\n", PcdGet32 (PcdEmuBootMode)); + SecPrint (" BootMode 0x%02x\n\r", PcdGet32 (PcdEmuBootMode)); // // Allocate 128K memory to emulate temp memory for PEI. @@ -476,12 +476,12 @@ Returns: TemporaryRamSize = TEMPORARY_RAM_SIZE; TemporaryRam = VirtualAlloc (NULL, (SIZE_T) (TemporaryRamSize), MEM_COMMIT, PAGE_EXECUTE_READWRITE); if (TemporaryRam == NULL) { - SecPrint ("ERROR : Can not allocate enough space for SecStack\n"); + SecPrint ("ERROR : Can not allocate enough space for SecStack\n\r"); exit (1); } SetMem32 (TemporaryRam, TemporaryRamSize, PcdGet32 (PcdInitValueInTempStack)); - SecPrint (" OS Emulator passing in %u KB of temp RAM at 0x%08lx to SEC\n", + SecPrint (" OS Emulator passing in %u KB of temp RAM at 0x%08lx to SEC\n\r", TemporaryRamSize / SIZE_1KB, TemporaryRam ); @@ -503,7 +503,7 @@ Returns: &Size ); if (EFI_ERROR (Status)) { - SecPrint ("ERROR : Could not allocate PeiServicesTablePage @ %p\n", EmuMagicPage); + SecPrint ("ERROR : Could not allocate PeiServicesTablePage @ %p\n\r", EmuMagicPage); return EFI_DEVICE_ERROR; } } @@ -514,7 +514,7 @@ Returns: // FileNamePtr = AllocateCopyPool (StrSize (FirmwareVolumesStr), FirmwareVolumesStr); if (FileNamePtr == NULL) { - SecPrint ("ERROR : Can not allocate memory for firmware volume string\n"); + SecPrint ("ERROR : Can not allocate memory for firmware volume string\n\r"); exit (1); } @@ -540,11 +540,11 @@ Returns: &gFdInfo[Index].Size ); if (EFI_ERROR (Status)) { - SecPrint ("ERROR : Can not open Firmware Device File %S (0x%X). Exiting.\n", FileName, Status); + SecPrint ("ERROR : Can not open Firmware Device File %S (0x%X). Exiting.\n\r", FileName, Status); exit (1); } - SecPrint (" FD loaded from %S\n", FileName); + SecPrint (" FD loaded from %S", FileName); if (SecFile == NULL) { // @@ -565,7 +565,7 @@ Returns: } } - SecPrint ("\n"); + SecPrint ("\n\r"); } // // Calculate memory regions and store the information in the gSystemMemory @@ -590,7 +590,7 @@ Returns: MemorySizeStr = MemorySizeStr + Index1 + 1; } - SecPrint ("\n"); + SecPrint ("\n\r"); // // Hand off to SEC Core @@ -601,7 +601,7 @@ Returns: // If we get here, then the SEC Core returned. This is an error as SEC should // always hand off to PEI Core and then on to DXE Core. // - SecPrint ("ERROR : SEC returned\n"); + SecPrint ("ERROR : SEC returned\n\r"); exit (1); } -- 2.21.0.windows.1 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [edk2-devel] [Patch][edk2-stable201908 2/2] EmulatorPkg/Win/Host: Fix SecPrint() log line endings 2019-08-22 2:36 ` [Patch][edk2-stable201908 2/2] EmulatorPkg/Win/Host: Fix SecPrint() log line endings Michael D Kinney @ 2019-08-22 23:12 ` Ni, Ray 0 siblings, 0 replies; 10+ messages in thread From: Ni, Ray @ 2019-08-22 23:12 UTC (permalink / raw) To: devel@edk2.groups.io, Kinney, Michael D Cc: Justen, Jordan L, Andrew Fish, Tim Lewis Reviewed-by: Ray Ni <ray.ni@intel.com> > -----Original Message----- > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Michael D > Kinney > Sent: Thursday, August 22, 2019 10:36 AM > To: devel@edk2.groups.io > Cc: Justen, Jordan L <jordan.l.justen@intel.com>; Ni, Ray <ray.ni@intel.com>; > Andrew Fish <afish@apple.com>; Tim Lewis <tim.lewis@insyde.com> > Subject: [edk2-devel] [Patch][edk2-stable201908 2/2] EmulatorPkg/Win/Host: > Fix SecPrint() log line endings > > Update use of SecPrint() to consistently use \n\r for > line endings to fix formatting issues in the debug log. > > Cc: Jordan Justen <jordan.l.justen@intel.com> > Cc: Ray Ni <ray.ni@intel.com> > Cc: Andrew Fish <afish@apple.com> > Cc: Tim Lewis <tim.lewis@insyde.com> > Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> > --- > EmulatorPkg/Win/Host/WinHost.c | 26 +++++++++++++------------- > 1 file changed, 13 insertions(+), 13 deletions(-) > > diff --git a/EmulatorPkg/Win/Host/WinHost.c > b/EmulatorPkg/Win/Host/WinHost.c > index 9c6acac279..9aba3c8959 100644 > --- a/EmulatorPkg/Win/Host/WinHost.c > +++ b/EmulatorPkg/Win/Host/WinHost.c > @@ -408,7 +408,7 @@ Returns: > MemorySizeStr = (CHAR16 *) PcdGetPtr (PcdEmuMemorySize); > FirmwareVolumesStr = (CHAR16 *) PcdGetPtr (PcdEmuFirmwareVolume); > > - SecPrint ("\nEDK II WIN Host Emulation Environment from > http://www.tianocore.org/edk2/\n"); > + SecPrint ("\n\rEDK II WIN Host Emulation Environment from > http://www.tianocore.org/edk2/\n\r"); > > // > // Determine the first thread available to this process. > @@ -450,7 +450,7 @@ Returns: > gSystemMemoryCount = CountSeparatorsInString (MemorySizeStr, '!') + 1; > gSystemMemory = calloc (gSystemMemoryCount, sizeof > (NT_SYSTEM_MEMORY)); > if (gSystemMemory == NULL) { > - SecPrint ("ERROR : Can not allocate memory for %S. Exiting.\n", > MemorySizeStr); > + SecPrint ("ERROR : Can not allocate memory for %S. Exiting.\n\r", > MemorySizeStr); > exit (1); > } > > @@ -460,13 +460,13 @@ Returns: > gFdInfoCount = CountSeparatorsInString (FirmwareVolumesStr, '!') + 1; > gFdInfo = calloc (gFdInfoCount, sizeof (NT_FD_INFO)); > if (gFdInfo == NULL) { > - SecPrint ("ERROR : Can not allocate memory for %S. Exiting.\n", > FirmwareVolumesStr); > + SecPrint ("ERROR : Can not allocate memory for %S. Exiting.\n\r", > FirmwareVolumesStr); > exit (1); > } > // > // Setup Boot Mode. > // > - SecPrint (" BootMode 0x%02x\n", PcdGet32 (PcdEmuBootMode)); > + SecPrint (" BootMode 0x%02x\n\r", PcdGet32 (PcdEmuBootMode)); > > // > // Allocate 128K memory to emulate temp memory for PEI. > @@ -476,12 +476,12 @@ Returns: > TemporaryRamSize = TEMPORARY_RAM_SIZE; > TemporaryRam = VirtualAlloc (NULL, (SIZE_T) (TemporaryRamSize), > MEM_COMMIT, PAGE_EXECUTE_READWRITE); > if (TemporaryRam == NULL) { > - SecPrint ("ERROR : Can not allocate enough space for SecStack\n"); > + SecPrint ("ERROR : Can not allocate enough space for SecStack\n\r"); > exit (1); > } > SetMem32 (TemporaryRam, TemporaryRamSize, PcdGet32 > (PcdInitValueInTempStack)); > > - SecPrint (" OS Emulator passing in %u KB of temp RAM at 0x%08lx to SEC\n", > + SecPrint (" OS Emulator passing in %u KB of temp RAM at 0x%08lx to SEC\n\r", > TemporaryRamSize / SIZE_1KB, > TemporaryRam > ); > @@ -503,7 +503,7 @@ Returns: > &Size > ); > if (EFI_ERROR (Status)) { > - SecPrint ("ERROR : Could not allocate PeiServicesTablePage @ %p\n", > EmuMagicPage); > + SecPrint ("ERROR : Could not allocate PeiServicesTablePage @ %p\n\r", > EmuMagicPage); > return EFI_DEVICE_ERROR; > } > } > @@ -514,7 +514,7 @@ Returns: > // > FileNamePtr = AllocateCopyPool (StrSize (FirmwareVolumesStr), > FirmwareVolumesStr); > if (FileNamePtr == NULL) { > - SecPrint ("ERROR : Can not allocate memory for firmware volume string\n"); > + SecPrint ("ERROR : Can not allocate memory for firmware volume > string\n\r"); > exit (1); > } > > @@ -540,11 +540,11 @@ Returns: > &gFdInfo[Index].Size > ); > if (EFI_ERROR (Status)) { > - SecPrint ("ERROR : Can not open Firmware Device File %S (0x%X). > Exiting.\n", FileName, Status); > + SecPrint ("ERROR : Can not open Firmware Device File %S (0x%X). > Exiting.\n\r", FileName, Status); > exit (1); > } > > - SecPrint (" FD loaded from %S\n", FileName); > + SecPrint (" FD loaded from %S", FileName); > > if (SecFile == NULL) { > // > @@ -565,7 +565,7 @@ Returns: > } > } > > - SecPrint ("\n"); > + SecPrint ("\n\r"); > } > // > // Calculate memory regions and store the information in the gSystemMemory > @@ -590,7 +590,7 @@ Returns: > MemorySizeStr = MemorySizeStr + Index1 + 1; > } > > - SecPrint ("\n"); > + SecPrint ("\n\r"); > > // > // Hand off to SEC Core > @@ -601,7 +601,7 @@ Returns: > // If we get here, then the SEC Core returned. This is an error as SEC should > // always hand off to PEI Core and then on to DXE Core. > // > - SecPrint ("ERROR : SEC returned\n"); > + SecPrint ("ERROR : SEC returned\n\r"); > exit (1); > } > > -- > 2.21.0.windows.1 > > > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Patch][edk2-stable201908 0/2] EmulatorPkg/Win/Host: Fix image unload regression 2019-08-22 2:36 [Patch][edk2-stable201908 0/2] EmulatorPkg/Win/Host: Fix image unload regression Michael D Kinney 2019-08-22 2:36 ` [Patch][edk2-stable201908 1/2] " Michael D Kinney 2019-08-22 2:36 ` [Patch][edk2-stable201908 2/2] EmulatorPkg/Win/Host: Fix SecPrint() log line endings Michael D Kinney @ 2019-08-26 19:31 ` Tim Lewis 2019-08-26 20:35 ` [edk2-devel] " Ni, Ray 2 siblings, 1 reply; 10+ messages in thread From: Tim Lewis @ 2019-08-26 19:31 UTC (permalink / raw) To: 'Michael D Kinney', devel Cc: 'Jordan Justen', 'Ray Ni', 'Andrew Fish' Tested-by: Tim Lewis <tim.lewis@insyde.com> -----Original Message----- From: Michael D Kinney <michael.d.kinney@intel.com> Sent: Wednesday, August 21, 2019 7:36 PM To: devel@edk2.groups.io Cc: Jordan Justen <jordan.l.justen@intel.com>; Ray Ni <ray.ni@intel.com>; Andrew Fish <afish@apple.com>; Tim Lewis <tim.lewis@insyde.com> Subject: [Patch][edk2-stable201908 0/2] EmulatorPkg/Win/Host: Fix image unload regression https://bugzilla.tianocore.org/show_bug.cgi?id=2104 When UEFI Applications or UEFI Drivers are unloaded, the PeCoffLoaderUnloadImageExtraAction() needs to unload the image using FreeLibrary() if the image was successfully loaded using LoadLibrrayEx(). This is a regression from the Nt32Pkg that supported unloading applications and drivers as well as loading the same application or driver multiple times. Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Ray Ni <ray.ni@intel.com> Cc: Andrew Fish <afish@apple.com> Cc: Tim Lewis <tim.lewis@insyde.com> Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Michael D Kinney (2): EmulatorPkg/Win/Host: Fix image unload regression EmulatorPkg/Win/Host: Fix SecPrint() log line endings EmulatorPkg/Win/Host/WinHost.c | 193 +++++++++++++++++++++++++++++---- 1 file changed, 174 insertions(+), 19 deletions(-) -- 2.21.0.windows.1 ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [edk2-devel] [Patch][edk2-stable201908 0/2] EmulatorPkg/Win/Host: Fix image unload regression 2019-08-26 19:31 ` [Patch][edk2-stable201908 0/2] EmulatorPkg/Win/Host: Fix image unload regression Tim Lewis @ 2019-08-26 20:35 ` Ni, Ray 2019-08-26 21:01 ` Michael D Kinney 0 siblings, 1 reply; 10+ messages in thread From: Ni, Ray @ 2019-08-26 20:35 UTC (permalink / raw) To: devel@edk2.groups.io, tim.lewis@insyde.com, Kinney, Michael D Cc: Justen, Jordan L, 'Andrew Fish' All, As the package maintainer of EmulatorPkg, I should push the patches. But I am not sure if there should be some ack from stewards regarding including this patch in the coming stable tag. What's the process? Thanks, Ray > -----Original Message----- > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Tim Lewis > Sent: Monday, August 26, 2019 12:32 PM > To: Kinney, Michael D <michael.d.kinney@intel.com>; devel@edk2.groups.io > Cc: Justen, Jordan L <jordan.l.justen@intel.com>; Ni, Ray <ray.ni@intel.com>; 'Andrew Fish' <afish@apple.com> > Subject: Re: [edk2-devel] [Patch][edk2-stable201908 0/2] EmulatorPkg/Win/Host: Fix image unload regression > > Tested-by: Tim Lewis <tim.lewis@insyde.com> > > -----Original Message----- > From: Michael D Kinney <michael.d.kinney@intel.com> > Sent: Wednesday, August 21, 2019 7:36 PM > To: devel@edk2.groups.io > Cc: Jordan Justen <jordan.l.justen@intel.com>; Ray Ni <ray.ni@intel.com>; > Andrew Fish <afish@apple.com>; Tim Lewis <tim.lewis@insyde.com> > Subject: [Patch][edk2-stable201908 0/2] EmulatorPkg/Win/Host: Fix image > unload regression > > https://bugzilla.tianocore.org/show_bug.cgi?id=2104 > > When UEFI Applications or UEFI Drivers are unloaded, the > PeCoffLoaderUnloadImageExtraAction() needs to unload the image using > FreeLibrary() if the image was successfully loaded using LoadLibrrayEx(). > > This is a regression from the Nt32Pkg that supported unloading applications > and drivers as well as loading the same application or driver multiple > times. > > Cc: Jordan Justen <jordan.l.justen@intel.com> > Cc: Ray Ni <ray.ni@intel.com> > Cc: Andrew Fish <afish@apple.com> > Cc: Tim Lewis <tim.lewis@insyde.com> > Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> > > Michael D Kinney (2): > EmulatorPkg/Win/Host: Fix image unload regression > EmulatorPkg/Win/Host: Fix SecPrint() log line endings > > EmulatorPkg/Win/Host/WinHost.c | 193 +++++++++++++++++++++++++++++---- > 1 file changed, 174 insertions(+), 19 deletions(-) > > -- > 2.21.0.windows.1 > > > > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [edk2-devel] [Patch][edk2-stable201908 0/2] EmulatorPkg/Win/Host: Fix image unload regression 2019-08-26 20:35 ` [edk2-devel] " Ni, Ray @ 2019-08-26 21:01 ` Michael D Kinney 2019-08-26 21:10 ` Andrew Fish 0 siblings, 1 reply; 10+ messages in thread From: Michael D Kinney @ 2019-08-26 21:01 UTC (permalink / raw) To: Ni, Ray, devel@edk2.groups.io, tim.lewis@insyde.com, Kinney, Michael D, leif.lindholm@linaro.org, Andrew Fish (afish@apple.com) Cc: Justen, Jordan L Ray, Laszlo and I are OK with this change going into the stable tag. I would like to a response from Andrew or Leif. Mike > -----Original Message----- > From: Ni, Ray > Sent: Monday, August 26, 2019 1:35 PM > To: devel@edk2.groups.io; tim.lewis@insyde.com; Kinney, > Michael D <michael.d.kinney@intel.com> > Cc: Justen, Jordan L <jordan.l.justen@intel.com>; > 'Andrew Fish' <afish@apple.com> > Subject: RE: [edk2-devel] [Patch][edk2-stable201908 0/2] > EmulatorPkg/Win/Host: Fix image unload regression > > All, > As the package maintainer of EmulatorPkg, I should push > the patches. > But I am not sure if there should be some ack from > stewards regarding including this patch in the coming > stable tag. > > What's the process? > > Thanks, > Ray > > > -----Original Message----- > > From: devel@edk2.groups.io <devel@edk2.groups.io> On > Behalf Of Tim > > Lewis > > Sent: Monday, August 26, 2019 12:32 PM > > To: Kinney, Michael D <michael.d.kinney@intel.com>; > > devel@edk2.groups.io > > Cc: Justen, Jordan L <jordan.l.justen@intel.com>; Ni, > Ray > > <ray.ni@intel.com>; 'Andrew Fish' <afish@apple.com> > > Subject: Re: [edk2-devel] [Patch][edk2-stable201908 > 0/2] > > EmulatorPkg/Win/Host: Fix image unload regression > > > > Tested-by: Tim Lewis <tim.lewis@insyde.com> > > > > -----Original Message----- > > From: Michael D Kinney <michael.d.kinney@intel.com> > > Sent: Wednesday, August 21, 2019 7:36 PM > > To: devel@edk2.groups.io > > Cc: Jordan Justen <jordan.l.justen@intel.com>; Ray Ni > > <ray.ni@intel.com>; Andrew Fish <afish@apple.com>; Tim > Lewis > > <tim.lewis@insyde.com> > > Subject: [Patch][edk2-stable201908 0/2] > EmulatorPkg/Win/Host: Fix > > image unload regression > > > > https://bugzilla.tianocore.org/show_bug.cgi?id=2104 > > > > When UEFI Applications or UEFI Drivers are unloaded, > the > > PeCoffLoaderUnloadImageExtraAction() needs to unload > the image using > > FreeLibrary() if the image was successfully loaded > using LoadLibrrayEx(). > > > > This is a regression from the Nt32Pkg that supported > unloading > > applications and drivers as well as loading the same > application or > > driver multiple times. > > > > Cc: Jordan Justen <jordan.l.justen@intel.com> > > Cc: Ray Ni <ray.ni@intel.com> > > Cc: Andrew Fish <afish@apple.com> > > Cc: Tim Lewis <tim.lewis@insyde.com> > > Signed-off-by: Michael D Kinney > <michael.d.kinney@intel.com> > > > > Michael D Kinney (2): > > EmulatorPkg/Win/Host: Fix image unload regression > > EmulatorPkg/Win/Host: Fix SecPrint() log line > endings > > > > EmulatorPkg/Win/Host/WinHost.c | 193 > > +++++++++++++++++++++++++++++---- > > 1 file changed, 174 insertions(+), 19 deletions(-) > > > > -- > > 2.21.0.windows.1 > > > > > > > > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [edk2-devel] [Patch][edk2-stable201908 0/2] EmulatorPkg/Win/Host: Fix image unload regression 2019-08-26 21:01 ` Michael D Kinney @ 2019-08-26 21:10 ` Andrew Fish 2019-08-26 22:03 ` Ni, Ray 0 siblings, 1 reply; 10+ messages in thread From: Andrew Fish @ 2019-08-26 21:10 UTC (permalink / raw) To: Mike Kinney Cc: Ni, Ray, devel@edk2.groups.io, tim.lewis@insyde.com, leif.lindholm@linaro.org, Jordan Justen Mike, I'm OK with it going in. Thanks, Andrew Fish > On Aug 26, 2019, at 2:01 PM, Kinney, Michael D <michael.d.kinney@intel.com> wrote: > > Ray, > > Laszlo and I are OK with this change going into the stable tag. > > I would like to a response from Andrew or Leif. > > Mike > >> -----Original Message----- >> From: Ni, Ray >> Sent: Monday, August 26, 2019 1:35 PM >> To: devel@edk2.groups.io; tim.lewis@insyde.com; Kinney, >> Michael D <michael.d.kinney@intel.com> >> Cc: Justen, Jordan L <jordan.l.justen@intel.com>; >> 'Andrew Fish' <afish@apple.com> >> Subject: RE: [edk2-devel] [Patch][edk2-stable201908 0/2] >> EmulatorPkg/Win/Host: Fix image unload regression >> >> All, >> As the package maintainer of EmulatorPkg, I should push >> the patches. >> But I am not sure if there should be some ack from >> stewards regarding including this patch in the coming >> stable tag. >> >> What's the process? >> >> Thanks, >> Ray >> >>> -----Original Message----- >>> From: devel@edk2.groups.io <devel@edk2.groups.io> On >> Behalf Of Tim >>> Lewis >>> Sent: Monday, August 26, 2019 12:32 PM >>> To: Kinney, Michael D <michael.d.kinney@intel.com>; >>> devel@edk2.groups.io >>> Cc: Justen, Jordan L <jordan.l.justen@intel.com>; Ni, >> Ray >>> <ray.ni@intel.com>; 'Andrew Fish' <afish@apple.com> >>> Subject: Re: [edk2-devel] [Patch][edk2-stable201908 >> 0/2] >>> EmulatorPkg/Win/Host: Fix image unload regression >>> >>> Tested-by: Tim Lewis <tim.lewis@insyde.com> >>> >>> -----Original Message----- >>> From: Michael D Kinney <michael.d.kinney@intel.com> >>> Sent: Wednesday, August 21, 2019 7:36 PM >>> To: devel@edk2.groups.io >>> Cc: Jordan Justen <jordan.l.justen@intel.com>; Ray Ni >>> <ray.ni@intel.com>; Andrew Fish <afish@apple.com>; Tim >> Lewis >>> <tim.lewis@insyde.com> >>> Subject: [Patch][edk2-stable201908 0/2] >> EmulatorPkg/Win/Host: Fix >>> image unload regression >>> >>> https://bugzilla.tianocore.org/show_bug.cgi?id=2104 >>> >>> When UEFI Applications or UEFI Drivers are unloaded, >> the >>> PeCoffLoaderUnloadImageExtraAction() needs to unload >> the image using >>> FreeLibrary() if the image was successfully loaded >> using LoadLibrrayEx(). >>> >>> This is a regression from the Nt32Pkg that supported >> unloading >>> applications and drivers as well as loading the same >> application or >>> driver multiple times. >>> >>> Cc: Jordan Justen <jordan.l.justen@intel.com> >>> Cc: Ray Ni <ray.ni@intel.com> >>> Cc: Andrew Fish <afish@apple.com> >>> Cc: Tim Lewis <tim.lewis@insyde.com> >>> Signed-off-by: Michael D Kinney >> <michael.d.kinney@intel.com> >>> >>> Michael D Kinney (2): >>> EmulatorPkg/Win/Host: Fix image unload regression >>> EmulatorPkg/Win/Host: Fix SecPrint() log line >> endings >>> >>> EmulatorPkg/Win/Host/WinHost.c | 193 >>> +++++++++++++++++++++++++++++---- >>> 1 file changed, 174 insertions(+), 19 deletions(-) >>> >>> -- >>> 2.21.0.windows.1 >>> >>> >>> >>> > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [edk2-devel] [Patch][edk2-stable201908 0/2] EmulatorPkg/Win/Host: Fix image unload regression 2019-08-26 21:10 ` Andrew Fish @ 2019-08-26 22:03 ` Ni, Ray 0 siblings, 0 replies; 10+ messages in thread From: Ni, Ray @ 2019-08-26 22:03 UTC (permalink / raw) To: afish@apple.com, Kinney, Michael D Cc: devel@edk2.groups.io, tim.lewis@insyde.com, leif.lindholm@linaro.org, Justen, Jordan L pushed @ abc0155b03..30b4abc6e9. > -----Original Message----- > From: afish@apple.com <afish@apple.com> > Sent: Monday, August 26, 2019 2:10 PM > To: Kinney, Michael D <michael.d.kinney@intel.com> > Cc: Ni, Ray <ray.ni@intel.com>; devel@edk2.groups.io; tim.lewis@insyde.com; leif.lindholm@linaro.org; Justen, Jordan L > <jordan.l.justen@intel.com> > Subject: Re: [edk2-devel] [Patch][edk2-stable201908 0/2] EmulatorPkg/Win/Host: Fix image unload regression > > Mike, > > I'm OK with it going in. > > Thanks, > > Andrew Fish > > > On Aug 26, 2019, at 2:01 PM, Kinney, Michael D <michael.d.kinney@intel.com> wrote: > > > > Ray, > > > > Laszlo and I are OK with this change going into the stable tag. > > > > I would like to a response from Andrew or Leif. > > > > Mike > > > >> -----Original Message----- > >> From: Ni, Ray > >> Sent: Monday, August 26, 2019 1:35 PM > >> To: devel@edk2.groups.io; tim.lewis@insyde.com; Kinney, > >> Michael D <michael.d.kinney@intel.com> > >> Cc: Justen, Jordan L <jordan.l.justen@intel.com>; > >> 'Andrew Fish' <afish@apple.com> > >> Subject: RE: [edk2-devel] [Patch][edk2-stable201908 0/2] > >> EmulatorPkg/Win/Host: Fix image unload regression > >> > >> All, > >> As the package maintainer of EmulatorPkg, I should push > >> the patches. > >> But I am not sure if there should be some ack from > >> stewards regarding including this patch in the coming > >> stable tag. > >> > >> What's the process? > >> > >> Thanks, > >> Ray > >> > >>> -----Original Message----- > >>> From: devel@edk2.groups.io <devel@edk2.groups.io> On > >> Behalf Of Tim > >>> Lewis > >>> Sent: Monday, August 26, 2019 12:32 PM > >>> To: Kinney, Michael D <michael.d.kinney@intel.com>; > >>> devel@edk2.groups.io > >>> Cc: Justen, Jordan L <jordan.l.justen@intel.com>; Ni, > >> Ray > >>> <ray.ni@intel.com>; 'Andrew Fish' <afish@apple.com> > >>> Subject: Re: [edk2-devel] [Patch][edk2-stable201908 > >> 0/2] > >>> EmulatorPkg/Win/Host: Fix image unload regression > >>> > >>> Tested-by: Tim Lewis <tim.lewis@insyde.com> > >>> > >>> -----Original Message----- > >>> From: Michael D Kinney <michael.d.kinney@intel.com> > >>> Sent: Wednesday, August 21, 2019 7:36 PM > >>> To: devel@edk2.groups.io > >>> Cc: Jordan Justen <jordan.l.justen@intel.com>; Ray Ni > >>> <ray.ni@intel.com>; Andrew Fish <afish@apple.com>; Tim > >> Lewis > >>> <tim.lewis@insyde.com> > >>> Subject: [Patch][edk2-stable201908 0/2] > >> EmulatorPkg/Win/Host: Fix > >>> image unload regression > >>> > >>> https://bugzilla.tianocore.org/show_bug.cgi?id=2104 > >>> > >>> When UEFI Applications or UEFI Drivers are unloaded, > >> the > >>> PeCoffLoaderUnloadImageExtraAction() needs to unload > >> the image using > >>> FreeLibrary() if the image was successfully loaded > >> using LoadLibrrayEx(). > >>> > >>> This is a regression from the Nt32Pkg that supported > >> unloading > >>> applications and drivers as well as loading the same > >> application or > >>> driver multiple times. > >>> > >>> Cc: Jordan Justen <jordan.l.justen@intel.com> > >>> Cc: Ray Ni <ray.ni@intel.com> > >>> Cc: Andrew Fish <afish@apple.com> > >>> Cc: Tim Lewis <tim.lewis@insyde.com> > >>> Signed-off-by: Michael D Kinney > >> <michael.d.kinney@intel.com> > >>> > >>> Michael D Kinney (2): > >>> EmulatorPkg/Win/Host: Fix image unload regression > >>> EmulatorPkg/Win/Host: Fix SecPrint() log line > >> endings > >>> > >>> EmulatorPkg/Win/Host/WinHost.c | 193 > >>> +++++++++++++++++++++++++++++---- > >>> 1 file changed, 174 insertions(+), 19 deletions(-) > >>> > >>> -- > >>> 2.21.0.windows.1 > >>> > >>> > >>> > >>> > > ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2019-08-26 22:03 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2019-08-22 2:36 [Patch][edk2-stable201908 0/2] EmulatorPkg/Win/Host: Fix image unload regression Michael D Kinney 2019-08-22 2:36 ` [Patch][edk2-stable201908 1/2] " Michael D Kinney 2019-08-22 23:10 ` [edk2-devel] " Ni, Ray 2019-08-22 2:36 ` [Patch][edk2-stable201908 2/2] EmulatorPkg/Win/Host: Fix SecPrint() log line endings Michael D Kinney 2019-08-22 23:12 ` [edk2-devel] " Ni, Ray 2019-08-26 19:31 ` [Patch][edk2-stable201908 0/2] EmulatorPkg/Win/Host: Fix image unload regression Tim Lewis 2019-08-26 20:35 ` [edk2-devel] " Ni, Ray 2019-08-26 21:01 ` Michael D Kinney 2019-08-26 21:10 ` Andrew Fish 2019-08-26 22:03 ` Ni, Ray
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox