]> git.proxmox.com Git - mirror_edk2.git/commitdiff
CpuException: Avoid allocating page but using global variables
authorRay Ni <ray.ni@intel.com>
Wed, 18 May 2022 06:45:37 +0000 (14:45 +0800)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Fri, 10 Jun 2022 07:54:48 +0000 (07:54 +0000)
Signed-off-by: Ray Ni <ray.ni@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
UefiCpuPkg/Library/CpuExceptionHandlerLib/DxeException.c

index da5b96d6c63be1ed7d0337a95a3cc7788c1db154..f139131a7c7d7b2a14503f53d16937970566b951 100644 (file)
@@ -14,8 +14,8 @@
 \r
 CONST UINTN  mDoFarReturnFlag = 0;\r
 \r
-RESERVED_VECTORS_DATA      mReservedVectorsData[CPU_EXCEPTION_NUM];\r
-EFI_CPU_INTERRUPT_HANDLER  mExternalInterruptHandlerTable[CPU_EXCEPTION_NUM];\r
+RESERVED_VECTORS_DATA      mReservedVectorsData[CPU_INTERRUPT_NUM];\r
+EFI_CPU_INTERRUPT_HANDLER  mExternalInterruptHandlerTable[CPU_INTERRUPT_NUM];\r
 EXCEPTION_HANDLER_DATA     mExceptionHandlerData = {\r
   0,   // To be fixed\r
   0,   // To be fixed\r
@@ -96,27 +96,15 @@ InitializeCpuInterruptHandlers (
   IA32_DESCRIPTOR                 IdtDescriptor;\r
   UINTN                           IdtEntryCount;\r
   EXCEPTION_HANDLER_TEMPLATE_MAP  TemplateMap;\r
-  RESERVED_VECTORS_DATA           *ReservedVectors;\r
-  EFI_CPU_INTERRUPT_HANDLER       *ExternalInterruptHandler;\r
-\r
-  Status = gBS->AllocatePool (\r
-                  EfiBootServicesCode,\r
-                  sizeof (RESERVED_VECTORS_DATA) * CPU_INTERRUPT_NUM,\r
-                  (VOID **)&ReservedVectors\r
-                  );\r
-  ASSERT (!EFI_ERROR (Status) && ReservedVectors != NULL);\r
-  SetMem ((VOID *)ReservedVectors, sizeof (RESERVED_VECTORS_DATA) * CPU_INTERRUPT_NUM, 0xff);\r
+\r
+  SetMem ((VOID *)mReservedVectorsData, sizeof (RESERVED_VECTORS_DATA) * CPU_INTERRUPT_NUM, 0xff);\r
   if (VectorInfo != NULL) {\r
-    Status = ReadAndVerifyVectorInfo (VectorInfo, ReservedVectors, CPU_INTERRUPT_NUM);\r
+    Status = ReadAndVerifyVectorInfo (VectorInfo, mReservedVectorsData, CPU_INTERRUPT_NUM);\r
     if (EFI_ERROR (Status)) {\r
-      FreePool (ReservedVectors);\r
       return EFI_INVALID_PARAMETER;\r
     }\r
   }\r
 \r
-  ExternalInterruptHandler = AllocateZeroPool (sizeof (EFI_CPU_INTERRUPT_HANDLER) * CPU_INTERRUPT_NUM);\r
-  ASSERT (ExternalInterruptHandler != NULL);\r
-\r
   //\r
   // Read IDT descriptor and calculate IDT size\r
   //\r
@@ -137,8 +125,6 @@ InitializeCpuInterruptHandlers (
   ASSERT (TemplateMap.ExceptionStubHeaderSize <= HOOKAFTER_STUB_SIZE);\r
 \r
   mExceptionHandlerData.IdtEntryCount            = CPU_INTERRUPT_NUM;\r
-  mExceptionHandlerData.ReservedVectors          = ReservedVectors;\r
-  mExceptionHandlerData.ExternalInterruptHandler = ExternalInterruptHandler;\r
   InitializeSpinLock (&mExceptionHandlerData.DisplayMessageSpinLock);\r
 \r
   UpdateIdtTable (IdtTable, &TemplateMap, &mExceptionHandlerData);\r