Message ID | 20181108141541.12832-4-jarkko.sakkinen@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Remove nested TPM operations | expand |
On 11/8/18 9:15 AM, Jarkko Sakkinen wrote: > Do not print partial list of PCRs when tpm1_pcr_read() fails but instead > return 0 from pcrs_show(). This is consistent behavior with other sysfs > functions. > > Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> Reviewed-by: Stefan Berger <stefanb@linux.ibm.com> > --- > drivers/char/tpm/tpm-sysfs.c | 13 ++++++------- > 1 file changed, 6 insertions(+), 7 deletions(-) > > diff --git a/drivers/char/tpm/tpm-sysfs.c b/drivers/char/tpm/tpm-sysfs.c > index 7ed7eb6f906a..928d4e839bb7 100644 > --- a/drivers/char/tpm/tpm-sysfs.c > +++ b/drivers/char/tpm/tpm-sysfs.c > @@ -100,22 +100,21 @@ static ssize_t pcrs_show(struct device *dev, struct device_attribute *attr, > { > cap_t cap; > u8 digest[TPM_DIGEST_SIZE]; > - ssize_t rc; > u32 i, j, num_pcrs; > char *str = buf; > struct tpm_chip *chip = to_tpm_chip(dev); > > - rc = tpm1_getcap(chip, TPM_CAP_PROP_PCR, &cap, > - "attempting to determine the number of PCRS", > - sizeof(cap.num_pcrs)); > - if (rc) > + if (tpm1_getcap(chip, TPM_CAP_PROP_PCR, &cap, > + "attempting to determine the number of PCRS", > + sizeof(cap.num_pcrs))) > return 0; > > num_pcrs = be32_to_cpu(cap.num_pcrs); > for (i = 0; i < num_pcrs; i++) { > - rc = tpm1_pcr_read(chip, i, digest); > - if (rc) > + if (tpm1_pcr_read(chip, i, digest)) { > + str = buf; > break; > + } > str += sprintf(str, "PCR-%02d: ", i); > for (j = 0; j < TPM_DIGEST_SIZE; j++) > str += sprintf(str, "%02X ", digest[j]);
diff --git a/drivers/char/tpm/tpm-sysfs.c b/drivers/char/tpm/tpm-sysfs.c index 7ed7eb6f906a..928d4e839bb7 100644 --- a/drivers/char/tpm/tpm-sysfs.c +++ b/drivers/char/tpm/tpm-sysfs.c @@ -100,22 +100,21 @@ static ssize_t pcrs_show(struct device *dev, struct device_attribute *attr, { cap_t cap; u8 digest[TPM_DIGEST_SIZE]; - ssize_t rc; u32 i, j, num_pcrs; char *str = buf; struct tpm_chip *chip = to_tpm_chip(dev); - rc = tpm1_getcap(chip, TPM_CAP_PROP_PCR, &cap, - "attempting to determine the number of PCRS", - sizeof(cap.num_pcrs)); - if (rc) + if (tpm1_getcap(chip, TPM_CAP_PROP_PCR, &cap, + "attempting to determine the number of PCRS", + sizeof(cap.num_pcrs))) return 0; num_pcrs = be32_to_cpu(cap.num_pcrs); for (i = 0; i < num_pcrs; i++) { - rc = tpm1_pcr_read(chip, i, digest); - if (rc) + if (tpm1_pcr_read(chip, i, digest)) { + str = buf; break; + } str += sprintf(str, "PCR-%02d: ", i); for (j = 0; j < TPM_DIGEST_SIZE; j++) str += sprintf(str, "%02X ", digest[j]);
Do not print partial list of PCRs when tpm1_pcr_read() fails but instead return 0 from pcrs_show(). This is consistent behavior with other sysfs functions. Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> --- drivers/char/tpm/tpm-sysfs.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-)