[edk2] [PATCH 2/2] UefiCpuPkg/MtrrLib: Fix an assertion bug

Ruiyu Ni posted 2 patches 6 years, 11 months ago
[edk2] [PATCH 2/2] UefiCpuPkg/MtrrLib: Fix an assertion bug
Posted by Ruiyu Ni 6 years, 11 months ago
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>
Cc: Eric Dong <eric.dong@intel.com>
---
 UefiCpuPkg/Library/MtrrLib/MtrrLib.c | 1 -
 1 file changed, 1 deletion(-)

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) {
-- 
2.15.1.windows.2

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel