diff options
author | Jian J Wang <jian.j.wang@intel.com> | 2018-10-24 11:28:32 +0800 |
---|---|---|
committer | Jian J Wang <jian.j.wang@intel.com> | 2018-10-26 10:30:34 +0800 |
commit | bb685071c2602cf786ea84c69bbebf2158194a38 (patch) | |
tree | 092a1c2345f1bab1ea166641adbd9aea159c0175 /BaseTools/Source/Python | |
parent | 54efcfea8120d9a0595d0db6cd5c1dddd8dd61e1 (diff) | |
download | edk2-bb685071c2602cf786ea84c69bbebf2158194a38.tar.gz edk2-bb685071c2602cf786ea84c69bbebf2158194a38.tar.bz2 edk2-bb685071c2602cf786ea84c69bbebf2158194a38.zip |
MdeModulePkg/Core: prevent re-acquire GCD memory lock
This issue is hidden in current code but exposed by introduction
of freed-memory guard feature due to the fact that the feature
will turn all pool allocation to page allocation.
The solution is moving the memory allocation in CoreGetMemorySpaceMap()
to be out of the GCD memory map lock.
CoreDumpGcdMemorySpaceMap()
=> CoreGetMemorySpaceMap()
=> CoreAcquireGcdMemoryLock () *
AllocatePool()
=> InternalAllocatePool()
=> CoreAllocatePool()
=> CoreAllocatePoolI()
=> CoreAllocatePoolPagesI()
=> CoreAllocatePoolPages()
=> FindFreePages()
=> PromoteMemoryResource()
=> CoreAcquireGcdMemoryLock() **
Cc: Star Zeng <star.zeng@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jian J Wang <jian.j.wang@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
Diffstat (limited to 'BaseTools/Source/Python')
0 files changed, 0 insertions, 0 deletions