]> git.proxmox.com Git - mirror_edk2.git/blobdiff - UefiCpuPkg/Library/MtrrLib/MtrrLib.c
UefiCpuPkg/MtrrLib: Remove the loop of calculating byte offset in MSR
[mirror_edk2.git] / UefiCpuPkg / Library / MtrrLib / MtrrLib.c
index 609aca5c3e23954a0099f3a61c48b289f70aae02..06a361bd84334cba939a3e4925a0f92fa4f51a76 100644 (file)
@@ -486,18 +486,10 @@ ProgramFixedMtrr (
   //\r
   // We found the fixed MTRR to be programmed\r
   //\r
-  for (ByteShift = 0; ByteShift < 8; ByteShift++) {\r
-    if (*Base ==\r
-         (\r
-           mMtrrLibFixedMtrrTable[MsrNum].BaseAddress +\r
-           (ByteShift * mMtrrLibFixedMtrrTable[MsrNum].Length)\r
-         )\r
-       ) {\r
-      break;\r
-    }\r
-  }\r
+  ByteShift = ((UINT32)*Base - mMtrrLibFixedMtrrTable[MsrNum].BaseAddress)\r
+               / mMtrrLibFixedMtrrTable[MsrNum].Length;\r
 \r
-  if (ByteShift == 8) {\r
+  if (ByteShift >= 8) {\r
     return RETURN_UNSUPPORTED;\r
   }\r
 \r