diff options
author | Jeff Fan <jeff.fan@intel.com> | 2016-07-21 21:33:11 +0800 |
---|---|---|
committer | Jeff Fan <jeff.fan@intel.com> | 2016-08-17 20:02:31 +0800 |
commit | 86efe97693a218349778727c7976cb5f584fb5f1 (patch) | |
tree | 90ab649b3634f40213ddeb3496d8172ce078b5df /UefiCpuPkg/Library/MpInitLib/DxeMpLib.c | |
parent | 20ae57745b19538229ba0670c10e08c13f9e2574 (diff) | |
download | edk2-86efe97693a218349778727c7976cb5f584fb5f1.tar.gz edk2-86efe97693a218349778727c7976cb5f584fb5f1.tar.bz2 edk2-86efe97693a218349778727c7976cb5f584fb5f1.zip |
UefiCpuPkg/MpInitLib: Implementation of MpInitLibStartupAllAPs()
v4:
1. Simply the internal function StartupAllAPsWorker()'s function
header due to it is duplicated with MpInitLibStartupAllAPs().
v3:
1. Use CamelCase for mStopCheckAllApsStatus and
CheckAndUpdateApsStatus()
Cc: Michael Kinney <michael.d.kinney@intel.com>
Cc: Feng Tian <feng.tian@intel.com>
Cc: Giri P Mudusuru <giri.p.mudusuru@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Michael Kinney <michael.d.kinney@intel.com>
Diffstat (limited to 'UefiCpuPkg/Library/MpInitLib/DxeMpLib.c')
-rw-r--r-- | UefiCpuPkg/Library/MpInitLib/DxeMpLib.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/UefiCpuPkg/Library/MpInitLib/DxeMpLib.c b/UefiCpuPkg/Library/MpInitLib/DxeMpLib.c index 75845bd838..1043becf4c 100644 --- a/UefiCpuPkg/Library/MpInitLib/DxeMpLib.c +++ b/UefiCpuPkg/Library/MpInitLib/DxeMpLib.c @@ -305,7 +305,28 @@ MpInitLibStartupAllAPs ( OUT UINTN **FailedCpuList OPTIONAL
)
{
- return EFI_UNSUPPORTED;
+ EFI_STATUS Status;
+
+ //
+ // Temporarily stop checkAllApsStatus for avoid resource dead-lock.
+ //
+ mStopCheckAllApsStatus = TRUE;
+
+ Status = StartupAllAPsWorker (
+ Procedure,
+ SingleThread,
+ WaitEvent,
+ TimeoutInMicroseconds,
+ ProcedureArgument,
+ FailedCpuList
+ );
+
+ //
+ // Start checkAllApsStatus
+ //
+ mStopCheckAllApsStatus = FALSE;
+
+ return Status;
}
/**
|