}\r
\r
//\r
- // Avoid forcibly reset AP caused the AP State is not updated.\r
+ // Avoid forcibly reset AP caused the timeout AP State is not\r
+ // updated.\r
//\r
GetMpSpinLock (CpuData);\r
+ if (CpuData->State == CpuStateBusy) {\r
+ CpuData->Procedure = NULL;\r
+ }\r
CpuData->State = CpuStateIdle;\r
- CpuData->Procedure = NULL;\r
ReleaseMpSpinLock (CpuData);\r
\r
while (TRUE) {\r
ReleaseMpSpinLock (CpuData);\r
\r
if (Procedure != NULL) {\r
+ SetApState (CpuData, CpuStateBusy);\r
+\r
Procedure (ProcedureArgument);\r
\r
GetMpSpinLock (CpuData);\r