Patch "tpm: Add check for Failure mode for TPM2 modules" has been added to the 5.18-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    tpm: Add check for Failure mode for TPM2 modules

to the 5.18-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     tpm-add-check-for-failure-mode-for-tpm2-modules.patch
and it can be found in the queue-5.18 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 9c1985649dac8ce39d9305a8087aa7e7a44b6a11
Author: Mårten Lindahl <marten.lindahl@xxxxxxxx>
Date:   Mon Aug 1 15:57:03 2022 +0200

    tpm: Add check for Failure mode for TPM2 modules
    
    [ Upstream commit 863ed94c589fcd1984f4e3080f069d30508044bb ]
    
    In commit 0aa698787aa2 ("tpm: Add Upgrade/Reduced mode support for
    TPM2 modules") it was said that:
    
    "If the TPM is in Failure mode, it will successfully respond to both
    tpm2_do_selftest() and tpm2_startup() calls. Although, will fail to
    answer to tpm2_get_cc_attrs_tbl(). Use this fact to conclude that TPM
    is in Failure mode."
    
    But a check was never added in the commit when calling
    tpm2_get_cc_attrs_tbl() to conclude that the TPM is in Failure mode.
    This commit corrects this by adding a check.
    
    Fixes: 0aa698787aa2 ("tpm: Add Upgrade/Reduced mode support for TPM2 modules")
    Cc: stable@xxxxxxxxxxxxxxx # v5.17+
    Signed-off-by: Mårten Lindahl <marten.lindahl@xxxxxxxx>
    Reviewed-by: Jarkko Sakkinen <jarkko@xxxxxxxxxx>
    Signed-off-by: Jarkko Sakkinen <jarkko@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/drivers/char/tpm/tpm2-cmd.c b/drivers/char/tpm/tpm2-cmd.c
index 04a3e23a4afc..4419593d9531 100644
--- a/drivers/char/tpm/tpm2-cmd.c
+++ b/drivers/char/tpm/tpm2-cmd.c
@@ -752,6 +752,12 @@ int tpm2_auto_startup(struct tpm_chip *chip)
 	}
 
 	rc = tpm2_get_cc_attrs_tbl(chip);
+	if (rc == TPM2_RC_FAILURE || (rc < 0 && rc != -ENOMEM)) {
+		dev_info(&chip->dev,
+			 "TPM in field failure mode, requires firmware upgrade\n");
+		chip->flags |= TPM_CHIP_FLAG_FIRMWARE_UPGRADE;
+		rc = 0;
+	}
 
 out:
 	if (rc == TPM2_RC_UPGRADE) {



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux