PcdSet## has no error status returned, then the caller has no idea about 
whether the set operation is successful or not.
PcdSet##S were added to return error status and PcdSet## APIs were put in 
ifndef DISABLE_NEW_DEPRECATED_INTERFACES condition.
To adopt PcdSet##S and further code development with 
DISABLE_NEW_DEPRECATED_INTERFACES defined, we need to Replace PcdSet## usage 
with PcdSet##S.

Normally, DynamicDefault PCD set is expected to be success, but DynamicHii PCD 
set failure is a legal case.
PcdTpmInitializationPolicy/PcdTcg2HashAlgorithmBitmap/PcdTpm2HashMask/PcdTpmInstanceGuid
 all have set operation in PEI phase,
PEI phase does not allow DynamicHii PCD set, so DynamicDefault is expected for 
them and use PcdSet##S to instead of PcdSet## and assert when set failure.

Cc: Jiewen Yao <jiewen....@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Star Zeng <star.z...@intel.com>
---
 .../Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterDxe.c      | 4 +++-
 .../Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterPei.c      | 4 +++-
 SecurityPkg/Tcg/Tcg2Config/Tcg2ConfigPeim.c                           | 3 ++-
 SecurityPkg/Tcg/Tcg2Config/TpmDetection.c                             | 3 ++-
 SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.c                                     | 3 ++-
 SecurityPkg/Tcg/TrEEConfig/TpmDetection.c                             | 3 ++-
 SecurityPkg/Tcg/TrEEConfig/TrEEConfigPeim.c                           | 3 ++-
 7 files changed, 16 insertions(+), 7 deletions(-)

diff --git 
a/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterDxe.c 
b/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterDxe.c
index 8967337..4f3c8df 100644
--- a/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterDxe.c
+++ b/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterDxe.c
@@ -205,6 +205,7 @@ RegisterHashInterfaceLib (
   UINTN              Index;
   UINT32             HashMask;
   UINT32             BiosSupportedHashMask;
+  EFI_STATUS         Status;
 
   //
   // Check allow
@@ -218,7 +219,8 @@ RegisterHashInterfaceLib (
     return EFI_OUT_OF_RESOURCES;
   }
   BiosSupportedHashMask = PcdGet32 (PcdTcg2HashAlgorithmBitmap);
-  PcdSet32 (PcdTcg2HashAlgorithmBitmap, BiosSupportedHashMask | HashMask);
+  Status = PcdSet32S (PcdTcg2HashAlgorithmBitmap, BiosSupportedHashMask | 
HashMask);
+  ASSERT_EFI_ERROR (Status);
 
   //
   // Check duplication
diff --git 
a/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterPei.c 
b/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterPei.c
index 98c0793..c3d4879 100644
--- a/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterPei.c
+++ b/SecurityPkg/Library/HashLibBaseCryptoRouter/HashLibBaseCryptoRouterPei.c
@@ -258,6 +258,7 @@ RegisterHashInterfaceLib (
   HASH_INTERFACE_HOB LocalHashInterfaceHob;
   UINT32             HashMask;
   UINT32             BiosSupportedHashMask;
+  EFI_STATUS         Status;
 
   //
   // Check allow
@@ -280,7 +281,8 @@ RegisterHashInterfaceLib (
     return EFI_OUT_OF_RESOURCES;
   }
   BiosSupportedHashMask = PcdGet32 (PcdTcg2HashAlgorithmBitmap);
-  PcdSet32 (PcdTcg2HashAlgorithmBitmap, BiosSupportedHashMask | HashMask);
+  Status = PcdSet32S (PcdTcg2HashAlgorithmBitmap, BiosSupportedHashMask | 
HashMask);
+  ASSERT_EFI_ERROR (Status);
 
   //
   // Check duplication
diff --git a/SecurityPkg/Tcg/Tcg2Config/Tcg2ConfigPeim.c 
b/SecurityPkg/Tcg/Tcg2Config/Tcg2ConfigPeim.c
index 34767c0..004c7ef 100644
--- a/SecurityPkg/Tcg/Tcg2Config/Tcg2ConfigPeim.c
+++ b/SecurityPkg/Tcg/Tcg2Config/Tcg2ConfigPeim.c
@@ -132,7 +132,8 @@ Tcg2ConfigPeimEntryPoint (
   for (Index = 0; Index < sizeof(mTpmInstanceId)/sizeof(mTpmInstanceId[0]); 
Index++) {
     if (TpmDevice == mTpmInstanceId[Index].TpmDevice) {
       Size = sizeof(mTpmInstanceId[Index].TpmInstanceGuid);
-      PcdSetPtr (PcdTpmInstanceGuid, &Size, 
&mTpmInstanceId[Index].TpmInstanceGuid);
+      Status = PcdSetPtrS (PcdTpmInstanceGuid, &Size, 
&mTpmInstanceId[Index].TpmInstanceGuid);
+      ASSERT_EFI_ERROR (Status);
       DEBUG ((EFI_D_INFO, "TpmDevice PCD: %g\n", 
&mTpmInstanceId[Index].TpmInstanceGuid));
       break;
     }
diff --git a/SecurityPkg/Tcg/Tcg2Config/TpmDetection.c 
b/SecurityPkg/Tcg/Tcg2Config/TpmDetection.c
index 9e93e9c..33f3a21 100644
--- a/SecurityPkg/Tcg/Tcg2Config/TpmDetection.c
+++ b/SecurityPkg/Tcg/Tcg2Config/TpmDetection.c
@@ -124,6 +124,7 @@ DetectTpmDevice (
   }
 
   // NO initialization needed again.
-  PcdSet8 (PcdTpmInitializationPolicy, 0);
+  Status = PcdSet8S (PcdTpmInitializationPolicy, 0);
+  ASSERT_EFI_ERROR (Status);
   return TPM_DEVICE_1_2;
 }
diff --git a/SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.c 
b/SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.c
index ec94c24..4ecfbe3 100644
--- a/SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.c
+++ b/SecurityPkg/Tcg/Tcg2Pei/Tcg2Pei.c
@@ -410,7 +410,8 @@ SetTpm2HashMask (
       }
     }
   }
-  PcdSet32 (PcdTpm2HashMask, ActivePcrBanks);
+  Status = PcdSet32S (PcdTpm2HashMask, ActivePcrBanks);
+  ASSERT_EFI_ERROR (Status);
 }
 
 /**
diff --git a/SecurityPkg/Tcg/TrEEConfig/TpmDetection.c 
b/SecurityPkg/Tcg/TrEEConfig/TpmDetection.c
index 3706c2c..805a319 100644
--- a/SecurityPkg/Tcg/TrEEConfig/TpmDetection.c
+++ b/SecurityPkg/Tcg/TrEEConfig/TpmDetection.c
@@ -124,6 +124,7 @@ DetectTpmDevice (
   }
 
   // NO initialization needed again.
-  PcdSet8 (PcdTpmInitializationPolicy, 0);
+  Status = PcdSet8S (PcdTpmInitializationPolicy, 0);
+  ASSERT_EFI_ERROR (Status);
   return TPM_DEVICE_1_2;
 }
diff --git a/SecurityPkg/Tcg/TrEEConfig/TrEEConfigPeim.c 
b/SecurityPkg/Tcg/TrEEConfig/TrEEConfigPeim.c
index efe40bc..b4a3d52 100644
--- a/SecurityPkg/Tcg/TrEEConfig/TrEEConfigPeim.c
+++ b/SecurityPkg/Tcg/TrEEConfig/TrEEConfigPeim.c
@@ -132,7 +132,8 @@ TrEEConfigPeimEntryPoint (
   for (Index = 0; Index < sizeof(mTpmInstanceId)/sizeof(mTpmInstanceId[0]); 
Index++) {
     if (TpmDevice == mTpmInstanceId[Index].TpmDevice) {
       Size = sizeof(mTpmInstanceId[Index].TpmInstanceGuid);
-      PcdSetPtr (PcdTpmInstanceGuid, &Size, 
&mTpmInstanceId[Index].TpmInstanceGuid);
+      Status = PcdSetPtrS (PcdTpmInstanceGuid, &Size, 
&mTpmInstanceId[Index].TpmInstanceGuid);
+      ASSERT_EFI_ERROR (Status);
       DEBUG ((EFI_D_INFO, "TpmDevice PCD: %g\n", 
&mTpmInstanceId[Index].TpmInstanceGuid));
       break;
     }
-- 
1.9.5.msysgit.0

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to