]> git.proxmox.com Git - mirror_edk2.git/commit - UefiCpuPkg/Library/MtrrLib/MtrrLib.c
UefiCpuPkg/MtrrLib: Fix bug that may incorrectly set <1MB attribute
authorRuiyu Ni <ruiyu.ni@intel.com>
Thu, 19 Oct 2017 02:43:08 +0000 (10:43 +0800)
committerRuiyu Ni <ruiyu.ni@intel.com>
Fri, 20 Oct 2017 04:52:08 +0000 (12:52 +0800)
commit86cabbcfa005ca9c9589402d4fb7c984e741cc19
treed1d3dbdef98ed558fc43f95876ea53a103f7e963
parent1e3f7a3782f1928a19bba81d9d0dba28d15fdae5
UefiCpuPkg/MtrrLib: Fix bug that may incorrectly set <1MB attribute

MtrrLibSetBelow1MBMemoryAttribute() may be called multiple times.
It's possible that in a 2nd call, Modified[0] is set to TRUE in
1st call but ClearMasks[0] and OrMasks[0] is uninitialized in
2nd call. It causes FixedSettings->Mtrr[0] be set to random
data.

The patch fixes this issue by introducing a local Modified[]
array and only updates FixedSettings->Mtrr[] when LocalModified[i]
is TRUE.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Reviewed-by: Hao A Wu <hao.a.wu@intel.com>
UefiCpuPkg/Library/MtrrLib/MtrrLib.c