Reviewed-by: Ray Ni <ray...@intel.com> Thanks, Ray > -----Original Message----- > From: Tan, Dun <dun....@intel.com> > Sent: Monday, January 8, 2024 1:08 PM > To: devel@edk2.groups.io > Cc: Ni, Ray <ray...@intel.com>; Laszlo Ersek <ler...@redhat.com>; Kumar, > Rahul R <rahul.r.ku...@intel.com>; Gerd Hoffmann <kra...@redhat.com>; > Xu, Min M <min.m...@intel.com> > Subject: [Patch V3 1/2] UefiCpuPkg: set > EXTENDED_PROCESSOR_INFORMATION to 0 > > Set EXTENDED_PROCESSOR_INFORMATION to 0 in API > MpInitLibGetProcessorInfo() of MpInitLibUp. This > commit use ZeroMem() to set all fileds in output > EFI_PROCESSOR_INFORMATION to 0 before StatusFlag > field is reassigned. > > Previously EXTENDED_PROCESSOR_INFORMATION in the API > MpInitLibGetProcessorInfo() of MpInitLibUp is ignored. > In PEI/DXE MpInitLib, EXTENDED_PROCESSOR_INFORMATION > will be retrived when BIT24 of input ProcessorNumber > is set. This commit can avoid garbage in the output > structure in MpInitLibGetProcessorInfo() of MpInitLibUp. > > Signed-off-by: Dun Tan <dun....@intel.com> > Cc: Ray Ni <ray...@intel.com> > Cc: Laszlo Ersek <ler...@redhat.com> > Cc: Rahul Kumar <rahul1.ku...@intel.com> > Cc: Gerd Hoffmann <kra...@redhat.com> > Cc: Min Xu <min.m...@intel.com> > --- > UefiCpuPkg/Include/Library/MpInitLib.h | 2 ++ > UefiCpuPkg/Library/MpInitLib/MpLib.c | 2 ++ > UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c | 15 ++++++++------- > UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.inf | 1 + > 4 files changed, 13 insertions(+), 7 deletions(-) > > diff --git a/UefiCpuPkg/Include/Library/MpInitLib.h > b/UefiCpuPkg/Include/Library/MpInitLib.h > index 1853c46415..842c6f7ff9 100644 > --- a/UefiCpuPkg/Include/Library/MpInitLib.h > +++ b/UefiCpuPkg/Include/Library/MpInitLib.h > @@ -63,6 +63,8 @@ MpInitLibGetNumberOfProcessors ( > instant this call is made. This service may only be called from the BSP. > > @param[in] ProcessorNumber The handle number of processor. > + Lower 24 bits contains the actual > processor number. > + BIT24 indicates if the > EXTENDED_PROCESSOR_INFORMATION will be retrived. > @param[out] ProcessorInfoBuffer A pointer to the buffer where > information for > the requested processor is deposited. > @param[out] HealthData Return processor health data. > diff --git a/UefiCpuPkg/Library/MpInitLib/MpLib.c > b/UefiCpuPkg/Library/MpInitLib/MpLib.c > index a359906923..cdfb570e61 100644 > --- a/UefiCpuPkg/Library/MpInitLib/MpLib.c > +++ b/UefiCpuPkg/Library/MpInitLib/MpLib.c > @@ -2333,6 +2333,8 @@ MpInitLibInitialize ( > instant this call is made. This service may only be called from the BSP. > > @param[in] ProcessorNumber The handle number of processor. > + Lower 24 bits contains the actual > processor number. > + BIT24 indicates if the > EXTENDED_PROCESSOR_INFORMATION will be retrived. > @param[out] ProcessorInfoBuffer A pointer to the buffer where > information for > the requested processor is deposited. > @param[out] HealthData Return processor health data. > diff --git a/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c > b/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c > index 86f9fbf903..d4f8611af8 100644 > --- a/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c > +++ b/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.c > @@ -12,6 +12,7 @@ > #include <Library/DebugLib.h> > #include <Library/LocalApicLib.h> > #include <Library/HobLib.h> > +#include <Library/BaseMemoryLib.h> > > /** > MP Initialize Library initialization. > @@ -77,6 +78,8 @@ MpInitLibGetNumberOfProcessors ( > instant this call is made. This service may only be called from the BSP. > > @param[in] ProcessorNumber The handle number of processor. > + Lower 24 bits contains the actual > processor number. > + BIT24 indicates if the > EXTENDED_PROCESSOR_INFORMATION will be retrived. > @param[out] ProcessorInfoBuffer A pointer to the buffer where > information for > the requested processor is deposited. > @param[out] HealthData Return processor health data. > @@ -108,13 +111,11 @@ MpInitLibGetProcessorInfo ( > return EFI_NOT_FOUND; > } > > - ProcessorInfoBuffer->ProcessorId = 0; > - ProcessorInfoBuffer->StatusFlag = PROCESSOR_AS_BSP_BIT | > - PROCESSOR_ENABLED_BIT | > - PROCESSOR_HEALTH_STATUS_BIT; > - ProcessorInfoBuffer->Location.Package = 0; > - ProcessorInfoBuffer->Location.Core = 0; > - ProcessorInfoBuffer->Location.Thread = 0; > + ZeroMem (ProcessorInfoBuffer, sizeof (*ProcessorInfoBuffer)); > + ProcessorInfoBuffer->StatusFlag = PROCESSOR_AS_BSP_BIT | > + PROCESSOR_ENABLED_BIT | > + PROCESSOR_HEALTH_STATUS_BIT; > + > if (HealthData != NULL) { > GuidHob = GetFirstGuidHob (&gEfiSecPlatformInformationPpiGuid); > if (GuidHob != NULL) { > diff --git a/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.inf > b/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.inf > index 24ad29c03c..eb0a168f74 100644 > --- a/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.inf > +++ b/UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.inf > @@ -32,6 +32,7 @@ > DebugLib > LocalApicLib > HobLib > + BaseMemoryLib > > [Ppis] > gEfiSecPlatformInformationPpiGuid ## SOMETIMES_CONSUMES > -- > 2.31.1.windows.1
-=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#113433): https://edk2.groups.io/g/devel/message/113433 Mute This Topic: https://groups.io/mt/103592278/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/leave/9847357/21656/1706620634/xyzzy [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-