EmulatorPkg/MpService: modify AP state should hold a mutex

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
This commit is contained in:
Chen Fan 2014-07-22 08:19:43 +00:00 committed by jljusten
parent f1bc233ae1
commit 70a2c7b11c
1 changed files with 5 additions and 0 deletions

View File

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