During PCR extend process, if any unsupported algorithms are active,
try to use PCR allocate to inactivate them.

Signed-off-by: Raymond Mao <[email protected]>
---
 lib/tpm-v2.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/lib/tpm-v2.c b/lib/tpm-v2.c
index 71abf070de..9781c288be 100644
--- a/lib/tpm-v2.c
+++ b/lib/tpm-v2.c
@@ -344,7 +344,10 @@ u32 tpm2_pcr_extend(struct udevice *dev, u32 index, u32 
algorithm,
 
        if (!tpm2_check_active_banks(dev)) {
                log_err("Cannot extend PCRs if all the TPM enabled algorithms 
are not supported\n");
-               return -EINVAL;
+
+               ret = tpm2_pcr_allocate(dev, 0);
+               if (ret)
+                       return -EINVAL;
        }
        /*
         * Fill the command structure starting from the first buffer:
-- 
2.25.1

Reply via email to