mirror of https://github.com/acidanthera/audk.git
UefiCpuPkg/MpService: free the unused cpu data buffer
Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Chen Fan <chen.fan.fnst@cn.fujitsu.com> Reviewed-by: Jeff Fan <jeff.fan@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16367 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
ac9dbb3b03
commit
232eb4c826
|
@ -25,7 +25,7 @@ VOID *mCommonStack = 0;
|
||||||
VOID *mTopOfApCommonStack = 0;
|
VOID *mTopOfApCommonStack = 0;
|
||||||
VOID *mApStackStart = 0;
|
VOID *mApStackStart = 0;
|
||||||
|
|
||||||
BOOLEAN mAPsAlreadyInitFinished = FALSE;
|
volatile BOOLEAN mAPsAlreadyInitFinished = FALSE;
|
||||||
volatile BOOLEAN mStopCheckAllAPsStatus = TRUE;
|
volatile BOOLEAN mStopCheckAllAPsStatus = TRUE;
|
||||||
|
|
||||||
EFI_MP_SERVICES_PROTOCOL mMpServicesTemplate = {
|
EFI_MP_SERVICES_PROTOCOL mMpServicesTemplate = {
|
||||||
|
@ -1135,11 +1135,15 @@ ProcessorToIdleState (
|
||||||
EFI_AP_PROCEDURE Procedure;
|
EFI_AP_PROCEDURE Procedure;
|
||||||
VOID *ProcedureArgument;
|
VOID *ProcedureArgument;
|
||||||
|
|
||||||
|
AsmApDoneWithCommonStack ();
|
||||||
|
|
||||||
|
while (!mAPsAlreadyInitFinished) {
|
||||||
|
CpuPause ();
|
||||||
|
}
|
||||||
|
|
||||||
WhoAmI (&mMpServicesTemplate, &ProcessorNumber);
|
WhoAmI (&mMpServicesTemplate, &ProcessorNumber);
|
||||||
CpuData = &mMpSystemData.CpuDatas[ProcessorNumber];
|
CpuData = &mMpSystemData.CpuDatas[ProcessorNumber];
|
||||||
|
|
||||||
AsmApDoneWithCommonStack ();
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Avoid forcibly reset AP caused the AP State is not updated.
|
// Avoid forcibly reset AP caused the AP State is not updated.
|
||||||
//
|
//
|
||||||
|
@ -1486,6 +1490,11 @@ InitializeMpSupport (
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mMpSystemData.CpuDatas = ReallocatePool (
|
||||||
|
sizeof (CPU_DATA_BLOCK) * gMaxLogicalProcessorNumber,
|
||||||
|
sizeof (CPU_DATA_BLOCK) * mMpSystemData.NumberOfProcessors,
|
||||||
|
mMpSystemData.CpuDatas);
|
||||||
|
|
||||||
mAPsAlreadyInitFinished = TRUE;
|
mAPsAlreadyInitFinished = TRUE;
|
||||||
|
|
||||||
if (mMpSystemData.NumberOfProcessors < gMaxLogicalProcessorNumber) {
|
if (mMpSystemData.NumberOfProcessors < gMaxLogicalProcessorNumber) {
|
||||||
|
|
Loading…
Reference in New Issue