On Thu, Jan 12, 2017 at 10:38:30AM -0800, James Bottomley wrote: > On Thu, 2017-01-12 at 19:46 +0200, Jarkko Sakkinen wrote: > > @@ -435,17 +440,23 @@ ssize_t tpm_transmit(struct tpm_chip *chip, > > const u8 *buf, size_t bufsiz, > > goto out; > > > > out_recv: > > - rc = chip->ops->recv(chip, (u8 *) buf, bufsiz); > > - if (rc < 0) > > + len = chip->ops->recv(chip, (u8 *) buf, bufsiz); > > + if (len < 0) { > > dev_err(&chip->dev, > > - "tpm_transmit: tpm_recv: error %zd\n", rc); > > + "tpm_transmit: tpm_recv: error %d\n", rc); > > + rc = len; > > + goto out; > > + } > > + > > + rc = tpm2_commit_space(chip, space, ordinal, buf, bufsiz); > > I think this should be > > rc = tpm2_commit_space(chip, space, ordinal, buf, len) > > because tpm2_commit_space wants to know the length of the response, not > the length of the original command.
Yeah, would make sense. > James /Jarkko