summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--UefiCpuPkg/Library/MpInitLib/Ia32/MpFuncs.nasm4
-rw-r--r--UefiCpuPkg/Library/MpInitLib/MpLib.c12
-rw-r--r--UefiCpuPkg/Library/MpInitLib/X64/MpFuncs.nasm3
3 files changed, 6 insertions, 13 deletions
diff --git a/UefiCpuPkg/Library/MpInitLib/Ia32/MpFuncs.nasm b/UefiCpuPkg/Library/MpInitLib/Ia32/MpFuncs.nasm
index 59db4081d6..d117f09ef5 100644
--- a/UefiCpuPkg/Library/MpInitLib/Ia32/MpFuncs.nasm
+++ b/UefiCpuPkg/Library/MpInitLib/Ia32/MpFuncs.nasm
@@ -197,8 +197,8 @@ CProcedureInvoke:
push ebx ; Push ApIndex
mov eax, esi
- add eax, MP_CPU_EXCHANGE_INFO_OFFSET
- push eax ; push address of exchange info data buffer
+ add eax, MP_CPU_EXCHANGE_INFO_FIELD (CpuMpData)
+ push dword [eax] ; push address of CpuMpData
mov edi, esi
add edi, MP_CPU_EXCHANGE_INFO_FIELD (CFunction)
diff --git a/UefiCpuPkg/Library/MpInitLib/MpLib.c b/UefiCpuPkg/Library/MpInitLib/MpLib.c
index ccc01859f0..f904751b0d 100644
--- a/UefiCpuPkg/Library/MpInitLib/MpLib.c
+++ b/UefiCpuPkg/Library/MpInitLib/MpLib.c
@@ -710,17 +710,16 @@ PlaceAPInMwaitLoopOrRunLoop (
/**
This function will be called from AP reset code if BSP uses WakeUpAP.
- @param[in] ExchangeInfo Pointer to the MP exchange info buffer
+ @param[in] CpuMpData Pointer to CPU MP Data
@param[in] ApIndex Number of current executing AP
**/
VOID
EFIAPI
ApWakeupFunction (
- IN MP_CPU_EXCHANGE_INFO *ExchangeInfo,
- IN UINTN ApIndex
+ IN CPU_MP_DATA *CpuMpData,
+ IN UINTN ApIndex
)
{
- CPU_MP_DATA *CpuMpData;
UINTN ProcessorNumber;
EFI_AP_PROCEDURE Procedure;
VOID *Parameter;
@@ -732,11 +731,6 @@ ApWakeupFunction (
AP_STACK_DATA *ApStackData;
//
- // AP finished assembly code and begin to execute C code
- //
- CpuMpData = ExchangeInfo->CpuMpData;
-
- //
// AP's local APIC settings will be lost after received INIT IPI
// We need to re-initialize them at here
//
diff --git a/UefiCpuPkg/Library/MpInitLib/X64/MpFuncs.nasm b/UefiCpuPkg/Library/MpInitLib/X64/MpFuncs.nasm
index 5bcdf7726b..40e80ffab4 100644
--- a/UefiCpuPkg/Library/MpInitLib/X64/MpFuncs.nasm
+++ b/UefiCpuPkg/Library/MpInitLib/X64/MpFuncs.nasm
@@ -259,8 +259,7 @@ CProcedureInvoke:
add rsp, 20h
mov edx, ebx ; edx is ApIndex
- mov ecx, esi
- add ecx, MP_CPU_EXCHANGE_INFO_OFFSET ; rcx is address of exchange info data buffer
+ mov rcx, qword [esi + MP_CPU_EXCHANGE_INFO_FIELD (CpuMpData)]
mov edi, esi
add edi, MP_CPU_EXCHANGE_INFO_FIELD (CFunction)