]> git.proxmox.com Git - mirror_edk2.git/commitdiff
EmulatorPkg/MpService: modify AP state should hold a mutex
authorChen Fan <chen.fan.fnst@cn.fujitsu.com>
Tue, 22 Jul 2014 08:19:43 +0000 (08:19 +0000)
committerjljusten <jljusten@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 22 Jul 2014 08:19:43 +0000 (08:19 +0000)
Add mutex when change AP state.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Chen Fan <chen.fan.fnst@cn.fujitsu.com>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15668 6f19259b-4bc3-4df7-8a09-765794883524

EmulatorPkg/CpuRuntimeDxe/MpService.c

index 792d0e4eb07d95bfc03216bd14bd47e8e02c6563..9d67b86ddfa30d59a71e39902b69586718f59795 100644 (file)
@@ -512,11 +512,16 @@ CpuMpServicesStartupAllAps (
         if (SingleThread) {\r
           Status = GetNextBlockedNumber (&NextNumber);\r
           if (!EFI_ERROR (Status)) {\r
+            gThread->MutexLock (&gMPSystem.ProcessorData[NextNumber].StateLock);\r
             gMPSystem.ProcessorData[NextNumber].State = CPU_STATE_READY;\r
+            gThread->MutexUnlock (&gMPSystem.ProcessorData[NextNumber].StateLock);\r
           }\r
         }\r
 \r
+        gThread->MutexLock (ProcessorData->StateLock);\r
         ProcessorData->State = CPU_STATE_IDLE;\r
+        gThread->MutexUnlock (ProcessorData->StateLock);\r
+\r
         break;\r
 \r
       default:\r