UefiCpuPkg: Also exchange CPU_AP_DATA in SortApicId()

CPU_AP_DATA contains AP's information such as CpuHealthy and
VolatileRegisters. Exchange the whole CPU_AP_DATA buffer instead
some fields to make code more simple.

Signed-off-by: Zhiguang Liu <zhiguang.liu@intel.com>
This commit is contained in:
Zhiguang Liu 2024-05-28 09:52:06 +08:00 committed by mergify[bot]
parent f5901ff2a4
commit 76f441c57c
1 changed files with 8 additions and 14 deletions

View File

@ -377,10 +377,9 @@ SortApicId (
UINTN Index3; UINTN Index3;
UINT32 ApicId; UINT32 ApicId;
CPU_INFO_IN_HOB CpuInfo; CPU_INFO_IN_HOB CpuInfo;
CPU_AP_DATA CpuApData;
UINT32 ApCount; UINT32 ApCount;
CPU_INFO_IN_HOB *CpuInfoInHob; CPU_INFO_IN_HOB *CpuInfoInHob;
volatile UINT32 *StartupApSignal;
VOID *SevEsSaveArea;
ApCount = CpuMpData->CpuCount - 1; ApCount = CpuMpData->CpuCount - 1;
CpuInfoInHob = (CPU_INFO_IN_HOB *)(UINTN)CpuMpData->CpuInfoInHob; CpuInfoInHob = (CPU_INFO_IN_HOB *)(UINTN)CpuMpData->CpuInfoInHob;
@ -407,18 +406,13 @@ SortApicId (
); );
CopyMem (&CpuInfoInHob[Index1], &CpuInfo, sizeof (CPU_INFO_IN_HOB)); CopyMem (&CpuInfoInHob[Index1], &CpuInfo, sizeof (CPU_INFO_IN_HOB));
// CopyMem (&CpuApData, &CpuMpData->CpuData[Index3], sizeof (CPU_AP_DATA));
// Also exchange the StartupApSignal and SevEsSaveArea. CopyMem (
// &CpuMpData->CpuData[Index3],
StartupApSignal = CpuMpData->CpuData[Index3].StartupApSignal; &CpuMpData->CpuData[Index1],
CpuMpData->CpuData[Index3].StartupApSignal = sizeof (CPU_AP_DATA)
CpuMpData->CpuData[Index1].StartupApSignal; );
CpuMpData->CpuData[Index1].StartupApSignal = StartupApSignal; CopyMem (&CpuMpData->CpuData[Index1], &CpuApData, sizeof (CPU_AP_DATA));
SevEsSaveArea = CpuMpData->CpuData[Index3].SevEsSaveArea;
CpuMpData->CpuData[Index3].SevEsSaveArea =
CpuMpData->CpuData[Index1].SevEsSaveArea;
CpuMpData->CpuData[Index1].SevEsSaveArea = SevEsSaveArea;
} }
} }