Reviewed-by: Jian J Wang <jian.j.w...@intel.com>
Regards, Jian > -----Original Message----- > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Ni, Ray > Sent: Friday, May 20, 2022 10:16 PM > To: devel@edk2.groups.io > Cc: Dong, Eric <eric.d...@intel.com> > Subject: [edk2-devel] [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 (#89918): https://edk2.groups.io/g/devel/message/89918 > Mute This Topic: https://groups.io/mt/91231769/1768734 > Group Owner: devel+ow...@edk2.groups.io > Unsubscribe: https://edk2.groups.io/g/devel/unsub [jian.j.w...@intel.com] > -=-=-=-=-=-= > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#89940): https://edk2.groups.io/g/devel/message/89940 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] -=-=-=-=-=-=-=-=-=-=-=-