]> git.proxmox.com Git - mirror_edk2.git/commitdiff
UefiCpuPkg/MtrrLib: Remove the loop of calculating byte offset in MSR
authorJeff Fan <jeff.fan@intel.com>
Wed, 20 Apr 2016 08:58:24 +0000 (16:58 +0800)
committerJeff Fan <jeff.fan@intel.com>
Fri, 29 Apr 2016 02:07:06 +0000 (10:07 +0800)
Calculate byte offset in MSR directly and removing the loop.

Cc: Feng Tian <feng.tian@intel.com>
Cc: Michael Kinney <michael.d.kinney@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
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