summaryrefslogtreecommitdiffstats
path: root/UefiCpuPkg/Library
diff options
context:
space:
mode:
authorRuiyu Ni <ruiyu.ni@intel.com>2018-01-09 18:25:20 +0800
committerRuiyu Ni <ruiyu.ni@intel.com>2018-01-11 10:37:56 +0800
commit0e8a782922c028cd04454a99d631e082c2153695 (patch)
treeadbdf80c6dc18bfd17ea709322ed917ba4f0154e /UefiCpuPkg/Library
parent579510336e2ccbb22fa706c49baa07969e3d60f6 (diff)
downloadedk2-0e8a782922c028cd04454a99d631e082c2153695.tar.gz
edk2-0e8a782922c028cd04454a99d631e082c2153695.tar.bz2
edk2-0e8a782922c028cd04454a99d631e082c2153695.zip
UefiCpuPkg/MtrrLib: Fix an assertion bug
0 40 f0 100 +---WT--+--UC--+--WT--+-----WB----+----UC----+ When calculating the shortest path from 0 to 100, the MtrrLibCalculateLeastMtrrs() is called to update the Vertices.Previous. When calculating the shortest path from 0 to 40, MtrrLibCalculateLeastMtrrs() is called recursively to update the Vertices.Previous. The second call corrupt the Previous value that will be used later. The patch removes the code that corrupts Previous. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com> Cc: Star Zeng <star.zeng@intel.com> Reviewed-by: Eric Dong <eric.dong@intel.com>
Diffstat (limited to 'UefiCpuPkg/Library')
-rw-r--r--UefiCpuPkg/Library/MtrrLib/MtrrLib.c1
1 files changed, 0 insertions, 1 deletions
diff --git a/UefiCpuPkg/Library/MtrrLib/MtrrLib.c b/UefiCpuPkg/Library/MtrrLib/MtrrLib.c
index 768d4d5cff..30b0df030b 100644
--- a/UefiCpuPkg/Library/MtrrLib/MtrrLib.c
+++ b/UefiCpuPkg/Library/MtrrLib/MtrrLib.c
@@ -1171,7 +1171,6 @@ MtrrLibCalculateLeastMtrrs (
for (Index = Start; Index <= Stop; Index++) {
Vertices[Index].Visited = FALSE;
- Vertices[Index].Previous = VertexCount;
Mandatory = Weight[M(Start,Index)];
Vertices[Index].Weight = Mandatory;
if (Mandatory != MAX_WEIGHT) {