]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
tpm: Do not print an error message when doing TPM auto startup
authorJason Gunthorpe <jgunthorpe@obsidianresearch.com>
Mon, 21 Nov 2016 18:31:09 +0000 (11:31 -0700)
committerJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Mon, 23 Jan 2017 16:28:18 +0000 (18:28 +0200)
This is a regression when this code was reworked and made the error
print unconditional. The original code deliberately suppressed printing
of the first error message so it could quietly sense
TPM_ERR_INVALID_POSTINIT.

Fixes: a502feb67b47 ("tpm: Clean up reading of timeout and duration capabilities")
Signed-off-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
drivers/char/tpm/tpm-interface.c

index 769d8b0d31a368222bd2ecba77894e77fa734c15..fecdd3fa8126a17b7ea9c3c8d0dc415bdfc17290 100644 (file)
@@ -546,8 +546,7 @@ int tpm_get_timeouts(struct tpm_chip *chip)
                return 0;
        }
 
                return 0;
        }
 
-       rc = tpm_getcap(chip, TPM_CAP_PROP_TIS_TIMEOUT, &cap,
-                       "attempting to determine the timeouts");
+       rc = tpm_getcap(chip, TPM_CAP_PROP_TIS_TIMEOUT, &cap, NULL);
        if (rc == TPM_ERR_INVALID_POSTINIT) {
                /* The TPM is not started, we are the first to talk to it.
                   Execute a startup command. */
        if (rc == TPM_ERR_INVALID_POSTINIT) {
                /* The TPM is not started, we are the first to talk to it.
                   Execute a startup command. */
@@ -558,8 +557,12 @@ int tpm_get_timeouts(struct tpm_chip *chip)
                rc = tpm_getcap(chip, TPM_CAP_PROP_TIS_TIMEOUT, &cap,
                                "attempting to determine the timeouts");
        }
                rc = tpm_getcap(chip, TPM_CAP_PROP_TIS_TIMEOUT, &cap,
                                "attempting to determine the timeouts");
        }
-       if (rc)
+       if (rc) {
+               dev_err(&chip->dev,
+                       "A TPM error (%zd) occurred attempting to determine the timeouts\n",
+                       rc);
                return rc;
                return rc;
+       }
 
        old_timeout[0] = be32_to_cpu(cap.timeout.a);
        old_timeout[1] = be32_to_cpu(cap.timeout.b);
 
        old_timeout[0] = be32_to_cpu(cap.timeout.a);
        old_timeout[1] = be32_to_cpu(cap.timeout.b);