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. James