Cc: Jiewen Yao <jiewen....@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.z...@intel.com>
---
 MdeModulePkg/Core/Dxe/Mem/MemoryProfileRecord.c | 26 +++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/MdeModulePkg/Core/Dxe/Mem/MemoryProfileRecord.c 
b/MdeModulePkg/Core/Dxe/Mem/MemoryProfileRecord.c
index 1ba8488a0e04..14c4959f9fe2 100644
--- a/MdeModulePkg/Core/Dxe/Mem/MemoryProfileRecord.c
+++ b/MdeModulePkg/Core/Dxe/Mem/MemoryProfileRecord.c
@@ -63,6 +63,7 @@ GLOBAL_REMOVE_IF_UNREFERENCED MEMORY_PROFILE_CONTEXT_DATA 
mMemoryProfileContext
 };
 GLOBAL_REMOVE_IF_UNREFERENCED MEMORY_PROFILE_CONTEXT_DATA 
*mMemoryProfileContextPtr = NULL;
 
+EFI_LOCK mMemoryProfileLock = EFI_INITIALIZE_LOCK_VARIABLE (TPL_NOTIFY);
 BOOLEAN mMemoryProfileGettingStatus = FALSE;
 BOOLEAN mMemoryProfileRecordingEnable = MEMORY_PROFILE_RECORDING_DISABLE;
 EFI_DEVICE_PATH_PROTOCOL *mMemoryProfileDriverPath;
@@ -218,6 +219,28 @@ EDKII_MEMORY_PROFILE_PROTOCOL mProfileProtocol = {
 };
 
 /**
+  Acquire lock on mMemoryProfileLock.
+**/
+VOID
+CoreAcquireMemoryProfileLock (
+  VOID
+  )
+{
+  CoreAcquireLock (&mMemoryProfileLock);
+}
+
+/**
+  Release lock on mMemoryProfileLock.
+**/
+VOID
+CoreReleaseMemoryProfileLock (
+  VOID
+  )
+{
+  CoreReleaseLock (&mMemoryProfileLock);
+}
+
+/**
   Return memory profile context.
 
   @return Memory profile context.
@@ -1383,6 +1406,7 @@ CoreUpdateProfile (
     return EFI_UNSUPPORTED;
   }
 
+  CoreAcquireMemoryProfileLock ();
   switch (BasicAction) {
     case MemoryProfileActionAllocatePages:
       Status = CoreUpdateProfileAllocate (CallerAddress, Action, MemoryType, 
Size, Buffer, ActionString);
@@ -1401,6 +1425,8 @@ CoreUpdateProfile (
       Status = EFI_UNSUPPORTED;
       break;
   }
+  CoreReleaseMemoryProfileLock ();
+
   return Status;
 }
 
-- 
2.7.0.windows.1

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to