Thanks for fixing it.

Reviewed-by: Jiewen Yao <jiewen....@intel.com>

Thank you
Yao Jiewen

-----Original Message-----
From: Zeng, Star 
Sent: Tuesday, June 09, 2015 10:11 AM
To: edk2-devel@lists.sourceforge.net
Cc: Yao, Jiewen
Subject: [PATCH 2/3] MdeModulePkg PiSmmCore: Free FullSmramRanges at error 
condition.

1. In PiSmmIpl.c, free FullSmramRanges at error condition.
2. Move pool and page management definitions and structures from 
PiSmmCorePrivateData.h to PiSmmCore.h.
PiSmmCorePrivateData.h should be only used to share SMM_CORE_PRIVATE_DATA 
between PiSmmCore and PiSmmIpl. Pool and page management definitions and 
structures were moved from Pool.c and Page.c to PiSmmCorePrivateData.h 
incorrectly for memory profile feature at EDK2 R16335 commit.
3. DumpSmramInfo() only used for memory profile, so move the declaration into 
SmramProfileRecord.c.

Cc: Jiewen Yao <jiewen....@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.z...@intel.com>
---
 MdeModulePkg/Core/PiSmmCore/PiSmmCore.h            | 55 ++++++++++++++++++----
 MdeModulePkg/Core/PiSmmCore/PiSmmCorePrivateData.h | 46 +-----------------
 MdeModulePkg/Core/PiSmmCore/PiSmmIpl.c             |  5 +-
 MdeModulePkg/Core/PiSmmCore/SmramProfileRecord.c   | 11 ++++-
 4 files changed, 59 insertions(+), 58 deletions(-)

diff --git a/MdeModulePkg/Core/PiSmmCore/PiSmmCore.h 
b/MdeModulePkg/Core/PiSmmCore/PiSmmCore.h
index 41e8f83..afac9e2 100644
--- a/MdeModulePkg/Core/PiSmmCore/PiSmmCore.h
+++ b/MdeModulePkg/Core/PiSmmCore/PiSmmCore.h
@@ -2,7 +2,7 @@
   The internal header file includes the common header files, defines
   internal structure and functions used by SmmCore module.
 
-  Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 2009 - 2015, Intel Corporation. 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        
@@ -909,16 +909,51 @@ SmramProfileReadyToLock (
   VOID
   );
 
-/**
-  Dump SMRAM infromation.
-
-**/
-VOID
-DumpSmramInfo (
-  VOID
-  );
-
 extern UINTN                    mFullSmramRangeCount;
 extern EFI_SMRAM_DESCRIPTOR     *mFullSmramRanges;
 
+//
+// Page management
+//
+
+typedef struct {
+  LIST_ENTRY  Link;
+  UINTN       NumberOfPages;
+} FREE_PAGE_LIST;
+
+extern LIST_ENTRY  mSmmMemoryMap;
+
+//
+// Pool management
+//
+
+//
+// MIN_POOL_SHIFT must not be less than 5 // #define MIN_POOL_SHIFT  6
+#define MIN_POOL_SIZE   (1 << MIN_POOL_SHIFT)
+
+//
+// MAX_POOL_SHIFT must not be less than EFI_PAGE_SHIFT - 1 // #define 
+MAX_POOL_SHIFT  (EFI_PAGE_SHIFT - 1)
+#define MAX_POOL_SIZE   (1 << MAX_POOL_SHIFT)
+
+//
+// MAX_POOL_INDEX are calculated by maximum and minimum pool sizes // 
+#define MAX_POOL_INDEX  (MAX_POOL_SHIFT - MIN_POOL_SHIFT + 1)
+
+typedef struct {
+  UINTN        Size;
+  BOOLEAN      Available;
+} POOL_HEADER;
+
+typedef struct {
+  POOL_HEADER  Header;
+  LIST_ENTRY   Link;
+} FREE_POOL_HEADER;
+
+extern LIST_ENTRY  mSmmPoolLists[MAX_POOL_INDEX];
+
 #endif
diff --git a/MdeModulePkg/Core/PiSmmCore/PiSmmCorePrivateData.h 
b/MdeModulePkg/Core/PiSmmCore/PiSmmCorePrivateData.h
index 3934d2f..9915669 100644
--- a/MdeModulePkg/Core/PiSmmCore/PiSmmCorePrivateData.h
+++ b/MdeModulePkg/Core/PiSmmCore/PiSmmCorePrivateData.h
@@ -2,7 +2,7 @@
   The internal header file that declared a data structure that is shared
   between the SMM IPL and the SMM Core.
 
-  Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 2009 - 2015, Intel Corporation. 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        
@@ -125,48 +125,4 @@ typedef struct {
   EFI_SMRAM_DESCRIPTOR            *FullSmramRanges;
 } SMM_CORE_PRIVATE_DATA;
 
-//
-// Page management
-//
-
-typedef struct {
-  LIST_ENTRY  Link;
-  UINTN       NumberOfPages;
-} FREE_PAGE_LIST;
-
-extern LIST_ENTRY  mSmmMemoryMap;
-
-//
-// Pool management
-//
-
-//
-// MIN_POOL_SHIFT must not be less than 5 -// -#define MIN_POOL_SHIFT  6
-#define MIN_POOL_SIZE   (1 << MIN_POOL_SHIFT)
-
-//
-// MAX_POOL_SHIFT must not be less than EFI_PAGE_SHIFT - 1 -// -#define 
MAX_POOL_SHIFT  (EFI_PAGE_SHIFT - 1)
-#define MAX_POOL_SIZE   (1 << MAX_POOL_SHIFT)
-
-//
-// MAX_POOL_INDEX are calculated by maximum and minimum pool sizes -// 
-#define MAX_POOL_INDEX  (MAX_POOL_SHIFT - MIN_POOL_SHIFT + 1)
-
-typedef struct {
-  UINTN        Size;
-  BOOLEAN      Available;
-} POOL_HEADER;
-
-typedef struct {
-  POOL_HEADER  Header;
-  LIST_ENTRY   Link;
-} FREE_POOL_HEADER;
-
-extern LIST_ENTRY  mSmmPoolLists[MAX_POOL_INDEX];
-
 #endif
diff --git a/MdeModulePkg/Core/PiSmmCore/PiSmmIpl.c 
b/MdeModulePkg/Core/PiSmmCore/PiSmmIpl.c
index 64565e9..ba596cd 100644
--- a/MdeModulePkg/Core/PiSmmCore/PiSmmIpl.c
+++ b/MdeModulePkg/Core/PiSmmCore/PiSmmIpl.c
@@ -1,7 +1,7 @@
 /** @file
   SMM IPL that produces SMM related runtime protocols and load the SMM Core 
into SMRAM
 
-  Copyright (c) 2009 - 2014, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 2009 - 2015, Intel Corporation. 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        
@@ -1251,7 +1251,8 @@ SmmIplEntry (
     // Free all allocated resources
     //
     FreePool (gSmmCorePrivate->SmramRanges);
-    
+    FreePool (gSmmCorePrivate->FullSmramRanges);
+
     return EFI_UNSUPPORTED;
   }
   
diff --git a/MdeModulePkg/Core/PiSmmCore/SmramProfileRecord.c 
b/MdeModulePkg/Core/PiSmmCore/SmramProfileRecord.c
index f906890..72fd37e 100644
--- a/MdeModulePkg/Core/PiSmmCore/SmramProfileRecord.c
+++ b/MdeModulePkg/Core/PiSmmCore/SmramProfileRecord.c
@@ -69,12 +69,21 @@ GLOBAL_REMOVE_IF_UNREFERENCED MEMORY_PROFILE_CONTEXT_DATA 
mSmramProfileContext =
   },
   &mImageQueue,
 };
-GLOBAL_REMOVE_IF_UNREFERENCED MEMORY_PROFILE_CONTEXT_DATA 
*mSmramProfileContextPtr;
+GLOBAL_REMOVE_IF_UNREFERENCED MEMORY_PROFILE_CONTEXT_DATA 
+*mSmramProfileContextPtr = NULL;
 
 BOOLEAN mSmramReadyToLock;
 BOOLEAN mSmramProfileRecordingStatus = FALSE;
 
 /**
+  Dump SMRAM infromation.
+
+**/
+VOID
+DumpSmramInfo (
+  VOID
+  );
+
+/**
   Return SMRAM profile context.
 
   @return SMRAM profile context.
--
1.9.5.msysgit.0


------------------------------------------------------------------------------
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to