From 70a2c7b11cbd6b1ad1fcb57b6f2011d534303984 Mon Sep 17 00:00:00 2001 From: Chen Fan Date: Tue, 22 Jul 2014 08:19:43 +0000 Subject: 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 Reviewed-by: Jordan Justen git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15668 6f19259b-4bc3-4df7-8a09-765794883524 --- EmulatorPkg/CpuRuntimeDxe/MpService.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'EmulatorPkg/CpuRuntimeDxe') diff --git a/EmulatorPkg/CpuRuntimeDxe/MpService.c b/EmulatorPkg/CpuRuntimeDxe/MpService.c index 792d0e4eb0..9d67b86ddf 100644 --- a/EmulatorPkg/CpuRuntimeDxe/MpService.c +++ b/EmulatorPkg/CpuRuntimeDxe/MpService.c @@ -512,11 +512,16 @@ CpuMpServicesStartupAllAps ( if (SingleThread) { Status = GetNextBlockedNumber (&NextNumber); if (!EFI_ERROR (Status)) { + gThread->MutexLock (&gMPSystem.ProcessorData[NextNumber].StateLock); gMPSystem.ProcessorData[NextNumber].State = CPU_STATE_READY; + gThread->MutexUnlock (&gMPSystem.ProcessorData[NextNumber].StateLock); } } + gThread->MutexLock (ProcessorData->StateLock); ProcessorData->State = CPU_STATE_IDLE; + gThread->MutexUnlock (ProcessorData->StateLock); + break; default: -- cgit v1.2.3