mirror_edk2/MdeModulePkg
Heyi Guo f1f7190bf3 MdeModulePkg/DxeCorePerformanceLib: add lock protection
DXE performance gauge record access functions might be reentered since
we are supporting something like USB hot-plug, which is a timer event
where gBS->ConnectController might be called and then PERF will be
called in CoreConnectSingleController.

When StartGaugeEx is being reentered, not only the gauge record might
be overwritten, more serious situation will be caused if gauge data
buffer reallocation procedure is interrupted, between line 180 and 187
in DxeCorePerformanceLib.c specifically. There, mMaxGaugeRecords will
be doubled twice (denoted as 4X), but mGaugeData only points to a
buffer of size 2X, which will probably cause the following 2X memory
to be overflowed when gauge records are increased.

So we add EFI lock with TPL_NOTIFY in StartGaugeEx/EndGaugeEx/GetGaugeEx
to avoid memory overflow and gauge data corruption.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Heyi Guo <heyi.guo@linaro.org>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Liming Gao <liming.gao@intel.com>
Reviewed-by: Star Zeng <star.zeng@intel.com>
2017-11-29 20:34:10 +08:00
..
Application MdeModulePkg: Fix misuses of AllocateCopyPool 2017-11-08 17:13:03 +08:00
Bus MdeModulePkg/AtaAtapiPassThru: Revert patch to disable PCI attributes 2017-11-29 09:02:46 +08:00
Core MdeModulePkg/Core: Merge memory map after filtering paging capability 2017-11-28 09:25:32 +08:00
Include MdeModulePkg: Fix unix style of EOL 2017-11-21 20:24:37 +08:00
Library MdeModulePkg/DxeCorePerformanceLib: add lock protection 2017-11-29 20:34:10 +08:00
Logo MdeModulePkg/LogoDxe: Return error if HII Package not present 2017-05-22 16:30:11 -07:00
Universal MdeModulePkg/BdsDxe: fall back to a Boot Manager Menu loop before hanging 2017-11-27 17:23:33 +01:00
MdeModulePkg.dec MdeModulePkg: Fix unix style of EOL 2017-11-21 20:24:37 +08:00
MdeModulePkg.dsc MdeModulePkg: Add UdfDxe to the dsc file 2017-09-13 18:24:40 +08:00
MdeModulePkg.uni MdeModulePkg: Fix unix style of EOL 2017-11-21 20:24:37 +08:00
MdeModulePkgExtra.uni MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00