ArmPkg,ArmPlatformPkg: Free memory allocated by Get.*SpaceMap()

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Olivier Martin <olivier.martin@arm.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14507 6f19259b-4bc3-4df7-8a09-765794883524
diff --git a/ArmPkg/Drivers/CpuDxe/AArch64/Mmu.c b/ArmPkg/Drivers/CpuDxe/AArch64/Mmu.c
index 9043afa..da6e622 100644
--- a/ArmPkg/Drivers/CpuDxe/AArch64/Mmu.c
+++ b/ArmPkg/Drivers/CpuDxe/AArch64/Mmu.c
@@ -15,6 +15,7 @@
 

 --*/

 

+#include <Library/MemoryAllocationLib.h>

 #include "CpuDxe.h"

 

 #define TT_ATTR_INDX_INVALID    ((UINT32)~0)

@@ -122,6 +123,8 @@
     }

   }

 

+  FreePool (MemorySpaceMap);

+

   return BaseAddress + (EntryCount * TT_ADDRESS_AT_LEVEL(TableLevel));

 }

 

@@ -185,5 +188,7 @@
       EndAddressGcdRegion - BaseAddressGcdRegion,

       PageAttributeToGcdAttribute (PageAttribute));

 

+  FreePool (MemorySpaceMap);

+

   return EFI_SUCCESS;

 }

diff --git a/ArmPkg/Drivers/CpuDxe/ArmV6/Mmu.c b/ArmPkg/Drivers/CpuDxe/ArmV6/Mmu.c
index 2dbdb68..ce8bd65 100644
--- a/ArmPkg/Drivers/CpuDxe/ArmV6/Mmu.c
+++ b/ArmPkg/Drivers/CpuDxe/ArmV6/Mmu.c
@@ -2,18 +2,20 @@
 

 Copyright (c) 2009, Hewlett-Packard Company. All rights reserved.<BR>

 Portions copyright (c) 2010, Apple Inc. All rights reserved.<BR>

+Portions copyright (c) 2013, ARM Ltd. All rights reserved.<BR>

 

-This program and the accompanying materials                          

-are licensed and made available under the terms and conditions of the BSD License         

-which accompanies this distribution.  The full text of the license may be found at        

-http://opensource.org/licenses/bsd-license.php                                            

-                                                                                          

-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     

-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             

+This program and the accompanying materials

+are licensed and made available under the terms and conditions of the BSD License

+which accompanies this distribution.  The full text of the license may be found at

+http://opensource.org/licenses/bsd-license.php

+

+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,

+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

 

 

 --*/

 

+#include <Library/MemoryAllocationLib.h>

 #include "CpuDxe.h"

 

 // First Level Descriptors

@@ -330,6 +332,8 @@
     SetGcdMemorySpaceAttributes (MemorySpaceMap, NumberOfDescriptors, NextRegionBase, NextRegionLength, GcdAttributes);

   }

 

+  FreePool (MemorySpaceMap);

+

   return EFI_SUCCESS;

 }

 

diff --git a/ArmPlatformPkg/Library/EblCmdLib/EblCmdLib.c b/ArmPlatformPkg/Library/EblCmdLib/EblCmdLib.c
index b45e85d..9319050 100644
--- a/ArmPlatformPkg/Library/EblCmdLib/EblCmdLib.c
+++ b/ArmPlatformPkg/Library/EblCmdLib/EblCmdLib.c
@@ -337,6 +337,8 @@
     AsciiPrint ("\n");

   }

 

+  FreePool (MemorySpaceMap);

+

   Status = gDS->GetIoSpaceMap(&NumberOfDescriptors,&IoSpaceMap);

   if (EFI_ERROR (Status)) {

       return Status;

@@ -355,6 +357,8 @@
     AsciiPrint ("\n");

   }

 

+  FreePool (IoSpaceMap);

+

   return EFI_SUCCESS;

 }