UefiCpuPkg/CpuDxe: Do not ASSERT on AllocateMemorySpace() error
authorJeff Fan <jeff.fan@intel.com>
Fri, 24 Feb 2017 05:58:48 +0000 (13:58 +0800)
committerJeff Fan <jeff.fan@intel.com>
Mon, 27 Feb 2017 02:28:37 +0000 (10:28 +0800)
Platform PEI may add LOCAL APIC memory mapped space into
EFI_HOB_MEMORY_ALLOCATION. Or platform may allocate this range before.

So, we skip AllocateMemorySpace()'s return status checking. Instead, we add one
DEBUG message for possible trace.

https://bugzilla.tianocore.org/show_bug.cgi?id=390

This updating is suggested by Ersek's comments at
https://www.mail-archive.com/edk2-devel@lists.01.org/msg22585.html

Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Feng Tian <feng.tian@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
UefiCpuPkg/CpuDxe/CpuDxe.c

index 2fd2f313a99b1f7645aecef616ea6ba479628fdb..4a5e282741bc6d9ea8336e5e60621ff9099ee47a 100644 (file)
@@ -1075,6 +1075,11 @@ AddLocalApicMemorySpace (
   Status = AddMemoryMappedIoSpace (BaseAddress, SIZE_4KB, EFI_MEMORY_UC);\r
   ASSERT_EFI_ERROR (Status);\r
 \r
+  //\r
+  // Try to allocate APIC memory mapped space, does not check return \r
+  // status because it may be allocated by other driver, or DXE Core if\r
+  // this range is built into Memory Allocation HOB.\r
+  //\r
   Status = gDS->AllocateMemorySpace (\r
                   EfiGcdAllocateAddress,\r
                   EfiGcdMemoryTypeMemoryMappedIo,\r
@@ -1084,7 +1089,10 @@ AddLocalApicMemorySpace (
                   ImageHandle,\r
                   NULL\r
                   );\r
-  ASSERT_EFI_ERROR (Status);\r
+  if (EFI_ERROR (Status)) {\r
+    DEBUG ((DEBUG_INFO, "%a: %a: AllocateMemorySpace() Status - %r\n",\r
+                         gEfiCallerBaseName, __FUNCTION__, Status));\r
+  }\r
 }\r
 \r
 /**\r