From 005c855dc6be0f61f76de0d7ec4a62ee737518d6 Mon Sep 17 00:00:00 2001 From: Marvin H?user Date: Sun, 22 Jul 2018 06:17:17 +0800 Subject: [PATCH] UefiCpuPkg/CpuMpPei: Correct BIST PPI logic. Currently, the SecPlatformInformation2 PPI is installed when either there is none present or the present one doesn't lack data. Update the logic to only install the SecPlatformInformation2 PPI when it's not already installed so that an up-to-date PPI remains the only one and unchanged. Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Marvin Haeuser Reviewed-by: Laszlo Ersek Reviewed-by: Eric Dong --- UefiCpuPkg/CpuMpPei/CpuBist.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/UefiCpuPkg/CpuMpPei/CpuBist.c b/UefiCpuPkg/CpuMpPei/CpuBist.c index 20728525e2..5312d9f01d 100644 --- a/UefiCpuPkg/CpuMpPei/CpuBist.c +++ b/UefiCpuPkg/CpuMpPei/CpuBist.c @@ -275,18 +275,20 @@ CollectBistDataFromPpi ( (UINTN) BistInformationSize ); - if (SecPlatformInformation2 != NULL && NumberOfData < NumberOfProcessors) { - // - // Reinstall SecPlatformInformation2 PPI to include new BIST information - // - Status = PeiServicesReInstallPpi ( - SecInformationDescriptor, - &mPeiSecPlatformInformation2Ppi - ); - ASSERT_EFI_ERROR (Status); + if (SecPlatformInformation2 != NULL) { + if (NumberOfData < NumberOfProcessors) { + // + // Reinstall SecPlatformInformation2 PPI to include new BIST information + // + Status = PeiServicesReInstallPpi ( + SecInformationDescriptor, + &mPeiSecPlatformInformation2Ppi + ); + ASSERT_EFI_ERROR (Status); + } } else { // - // Install SecPlatformInformation2 PPI to include new BIST information + // Install SecPlatformInformation2 PPI // Status = PeiServicesInstallPpi (&mPeiSecPlatformInformation2Ppi); ASSERT_EFI_ERROR(Status); -- 2.39.2