]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Hold Memory Lock until DEBUG_CLEAR_MEMORY called in CoreFreePages().
authorjgong5 <jgong5@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 19 Mar 2010 04:22:35 +0000 (04:22 +0000)
committerjgong5 <jgong5@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 19 Mar 2010 04:22:35 +0000 (04:22 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10284 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Core/Dxe/Mem/Page.c

index f351a121f35b0eae343c4cf9231f4a03a4206cf8..b0cf1ece1e6545c50fcda28b67baead29c4164c7 100644 (file)
@@ -1168,8 +1168,8 @@ CoreFreePages (
     }\r
   }\r
   if (Link == &gMemoryMap) {\r
-    CoreReleaseMemoryLock ();\r
-    return EFI_NOT_FOUND;\r
+    Status = EFI_NOT_FOUND;\r
+    goto Done;\r
   }\r
 \r
   Alignment = EFI_DEFAULT_PAGE_ALLOCATION_ALIGNMENT;\r
@@ -1185,8 +1185,8 @@ CoreFreePages (
   }\r
 \r
   if ((Memory & (Alignment - 1)) != 0) {\r
-    CoreReleaseMemoryLock ();\r
-    return EFI_INVALID_PARAMETER;\r
+    Status = EFI_INVALID_PARAMETER;\r
+    goto Done;\r
   }\r
 \r
   NumberOfPages += EFI_SIZE_TO_PAGES (Alignment) - 1;\r
@@ -1194,10 +1194,8 @@ CoreFreePages (
 \r
   Status = CoreConvertPages (Memory, NumberOfPages, EfiConventionalMemory);\r
 \r
-  CoreReleaseMemoryLock ();\r
-\r
   if (EFI_ERROR (Status)) {\r
-    return Status;\r
+    goto Done;\r
   }\r
 \r
   //\r
@@ -1207,6 +1205,8 @@ CoreFreePages (
     DEBUG_CLEAR_MEMORY ((VOID *)(UINTN)Memory, NumberOfPages << EFI_PAGE_SHIFT);\r
   }\r
 \r
+Done:\r
+  CoreReleaseMemoryLock ();\r
   return Status;\r
 }\r
 \r