On Mon, Nov 21, 2016 at 11:31:09AM -0700, Jason Gunthorpe wrote: > 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 <jguntho...@obsidianresearch.com>
Thanks for spotting this out. I'll apply this tomorrow (i.e. not tonight) as it does not endager stability in anyway as I test the other fixes. Reviewed-by: Jarkko Sakkinen <jarkko.sakki...@linux.intel.com> /Jarkko > --- > drivers/char/tpm/tpm-interface.c | 9 ++++++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/drivers/char/tpm/tpm-interface.c > b/drivers/char/tpm/tpm-interface.c > index a2688ac2b48f3c..c90f4f6d7871be 100644 > --- a/drivers/char/tpm/tpm-interface.c > +++ b/drivers/char/tpm/tpm-interface.c > @@ -523,8 +523,7 @@ int tpm_get_timeouts(struct tpm_chip *chip) > 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. */ > @@ -535,8 +534,12 @@ int tpm_get_timeouts(struct tpm_chip *chip) > 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; > + } > > old_timeout[0] = be32_to_cpu(cap.timeout.a); > old_timeout[1] = be32_to_cpu(cap.timeout.b); > -- > 2.1.4 ------------------------------------------------------------------------------ _______________________________________________ tpmdd-devel mailing list tpmdd-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tpmdd-devel