Acked-by: Eric Dong <eric.d...@intel.com> -----Original Message----- From: Ni, Ray <ray...@intel.com> Sent: Friday, May 20, 2022 10:16 PM To: devel@edk2.groups.io Cc: Dong, Eric <eric.d...@intel.com> Subject: [PATCH 3/5] CpuException: Avoid allocating page but using global variables
Signed-off-by: Ray Ni <ray...@intel.com> Cc: Eric Dong <eric.d...@intel.com> --- .../CpuExceptionHandlerLib/DxeException.c | 24 ++++--------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeException.c b/UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeException.c index da5b96d6c6..f139131a7c 100644 --- a/UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeException.c +++ b/UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeException.c @@ -14,8 +14,8 @@ CONST UINTN mDoFarReturnFlag = 0; -RESERVED_VECTORS_DATA mReservedVectorsData[CPU_EXCEPTION_NUM]; -EFI_CPU_INTERRUPT_HANDLER mExternalInterruptHandlerTable[CPU_EXCEPTION_NUM]; +RESERVED_VECTORS_DATA mReservedVectorsData[CPU_INTERRUPT_NUM]; +EFI_CPU_INTERRUPT_HANDLER mExternalInterruptHandlerTable[CPU_INTERRUPT_NUM]; EXCEPTION_HANDLER_DATA mExceptionHandlerData = { 0, // To be fixed 0, // To be fixed @@ -96,27 +96,15 @@ InitializeCpuInterruptHandlers ( IA32_DESCRIPTOR IdtDescriptor; UINTN IdtEntryCount; EXCEPTION_HANDLER_TEMPLATE_MAP TemplateMap; - RESERVED_VECTORS_DATA *ReservedVectors; - EFI_CPU_INTERRUPT_HANDLER *ExternalInterruptHandler; - - Status = gBS->AllocatePool ( - EfiBootServicesCode, - sizeof (RESERVED_VECTORS_DATA) * CPU_INTERRUPT_NUM, - (VOID **)&ReservedVectors - ); - ASSERT (!EFI_ERROR (Status) && ReservedVectors != NULL); - SetMem ((VOID *)ReservedVectors, sizeof (RESERVED_VECTORS_DATA) * CPU_INTERRUPT_NUM, 0xff); + + SetMem ((VOID *)mReservedVectorsData, sizeof (RESERVED_VECTORS_DATA) * CPU_INTERRUPT_NUM, 0xff); if (VectorInfo != NULL) { - Status = ReadAndVerifyVectorInfo (VectorInfo, ReservedVectors, CPU_INTERRUPT_NUM); + Status = ReadAndVerifyVectorInfo (VectorInfo, mReservedVectorsData, CPU_INTERRUPT_NUM); if (EFI_ERROR (Status)) { - FreePool (ReservedVectors); return EFI_INVALID_PARAMETER; } } - ExternalInterruptHandler = AllocateZeroPool (sizeof (EFI_CPU_INTERRUPT_HANDLER) * CPU_INTERRUPT_NUM); - ASSERT (ExternalInterruptHandler != NULL); - // // Read IDT descriptor and calculate IDT size // @@ -137,8 +125,6 @@ InitializeCpuInterruptHandlers ( ASSERT (TemplateMap.ExceptionStubHeaderSize <= HOOKAFTER_STUB_SIZE); mExceptionHandlerData.IdtEntryCount = CPU_INTERRUPT_NUM; - mExceptionHandlerData.ReservedVectors = ReservedVectors; - mExceptionHandlerData.ExternalInterruptHandler = ExternalInterruptHandler; InitializeSpinLock (&mExceptionHandlerData.DisplayMessageSpinLock); UpdateIdtTable (IdtTable, &TemplateMap, &mExceptionHandlerData); -- 2.35.1.windows.2 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#90238): https://edk2.groups.io/g/devel/message/90238 Mute This Topic: https://groups.io/mt/91231769/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-