lkml.org 
[lkml]   [2022]   [Aug]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.18 1069/1095] tpm: Add check for Failure mode for TPM2 modules
    Date
    From: Mårten Lindahl <marten.lindahl@axis.com>

    [ 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@vger.kernel.org # v5.17+
    Signed-off-by: Mårten Lindahl <marten.lindahl@axis.com>
    Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
    Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/char/tpm/tpm2-cmd.c | 6 ++++++
    1 file changed, 6 insertions(+)

    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) {
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-08-16 01:42    [W:2.737 / U:0.236 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site