diff options
author | Star Zeng <star.zeng@intel.com> | 2016-06-29 12:51:55 +0800 |
---|---|---|
committer | Star Zeng <star.zeng@intel.com> | 2016-07-01 09:39:55 +0800 |
commit | c16b7fe71aa99d9bf27ca5d88e15274c39a7a559 (patch) | |
tree | c5956ac9e9cf85ffeb5d2529c732b3cee7680bda | |
parent | 1d60fe96422206d37e1d74198bb11b2cf6195157 (diff) | |
download | edk2-c16b7fe71aa99d9bf27ca5d88e15274c39a7a559.zip edk2-c16b7fe71aa99d9bf27ca5d88e15274c39a7a559.tar.gz edk2-c16b7fe71aa99d9bf27ca5d88e15274c39a7a559.tar.bz2 |
MdeModulePkg DxeCore: Add lock to pretect memory profile AllocInfo list
Cc: Jiewen Yao <jiewen.yao@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.zeng@intel.com>
Reviewed-by: Jiewen Yao <jiewen.yao@intel.com>
-rw-r--r-- | MdeModulePkg/Core/Dxe/Mem/MemoryProfileRecord.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/MdeModulePkg/Core/Dxe/Mem/MemoryProfileRecord.c b/MdeModulePkg/Core/Dxe/Mem/MemoryProfileRecord.c index 1ba8488..14c4959 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;
}
|