]> git.proxmox.com Git - mirror_edk2.git/commitdiff
UefiCpuPkg/PiSmmCpuDxeSmm: Remove Used parameter.
authorDong, Eric <eric.dong@intel.com>
Fri, 10 Apr 2020 06:54:00 +0000 (14:54 +0800)
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
Mon, 13 Apr 2020 03:13:36 +0000 (03:13 +0000)
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2388

After patch "UefiCpuPkg/PiSmmCpuDxeSmm: Improve the
performance of GetFreeToken()" which adds new parameter
FirstFreeToken, it's not need to use Uses parameter.
This patch used to remove this parameter.

Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c
UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h

index 93cac5e4fa93235e5d294ea65055bca98e8ed69b..305bffa9bcfd1645e1ddee4ea71b4311dfb7ed11 100644 (file)
@@ -441,7 +441,6 @@ ResetTokens (
     ProcToken = PROCEDURE_TOKEN_FROM_LINK (Link);\r
 \r
     ProcToken->RunningApCount = 0;\r
-    ProcToken->Used = FALSE;\r
 \r
     //\r
     // Check the spinlock status and release it if not released yet.\r
@@ -1049,10 +1048,13 @@ IsTokenInUse (
   }\r
 \r
   Link = GetFirstNode (&gSmmCpuPrivate->TokenList);\r
-  while (!IsNull (&gSmmCpuPrivate->TokenList, Link)) {\r
+  //\r
+  // Only search used tokens.\r
+  //\r
+  while (Link != gSmmCpuPrivate->FirstFreeToken) {\r
     ProcToken = PROCEDURE_TOKEN_FROM_LINK (Link);\r
 \r
-    if (ProcToken->Used && ProcToken->SpinLock == Token) {\r
+    if (ProcToken->SpinLock == Token) {\r
       return TRUE;\r
     }\r
 \r
@@ -1104,7 +1106,6 @@ AllocateTokenBuffer (
 \r
     ProcTokens[Index].Signature      = PROCEDURE_TOKEN_SIGNATURE;\r
     ProcTokens[Index].SpinLock       = SpinLock;\r
-    ProcTokens[Index].Used           = FALSE;\r
     ProcTokens[Index].RunningApCount = 0;\r
 \r
     InsertTailList (&gSmmCpuPrivate->TokenList, &ProcTokens[Index].Link);\r
@@ -1140,7 +1141,6 @@ GetFreeToken (
   NewToken = PROCEDURE_TOKEN_FROM_LINK (gSmmCpuPrivate->FirstFreeToken);\r
   gSmmCpuPrivate->FirstFreeToken = GetNextNode (&gSmmCpuPrivate->TokenList, gSmmCpuPrivate->FirstFreeToken);\r
 \r
-  NewToken->Used = TRUE;\r
   NewToken->RunningApCount = RunningApsCount;\r
   AcquireSpinLock (NewToken->SpinLock);\r
 \r
index c9b3b739f37c5074a8c3f43286754857ff73ed66..7fb3a2d9e4b759b32dcc98d221cae7ca1c34a998 100644 (file)
@@ -214,7 +214,6 @@ typedef struct {
 \r
   SPIN_LOCK               *SpinLock;\r
   volatile UINT32         RunningApCount;\r
-  BOOLEAN                 Used;\r
 } PROCEDURE_TOKEN;\r
 \r
 #define PROCEDURE_TOKEN_FROM_LINK(a)  CR (a, PROCEDURE_TOKEN, Link, PROCEDURE_TOKEN_SIGNATURE)\r