Re: [PATCH v7 3/5] tpm: Clean up reading of timeout and duration capabilities

From: Ed Swierk
Date: Tue Jun 21 2016 - 20:22:25 EST


On Mon, Jun 20, 2016 at 6:54 PM, Ed Swierk <eswierk@xxxxxxxxxxxxxxxxxx> wrote:
> --- a/drivers/char/tpm/tpm-interface.c
> +++ b/drivers/char/tpm/tpm-interface.c
> @@ -461,9 +461,19 @@ ssize_t tpm_getcap(struct device *dev, __be32 subcap_id, cap_t *cap,
> tpm_cmd.params.getcap_in.subcap_size = cpu_to_be32(4);
> tpm_cmd.params.getcap_in.subcap = subcap_id;
> }
> +
> rc = tpm_transmit_cmd(chip, &tpm_cmd, TPM_INTERNAL_RESULT_SIZE, desc);
> +
> + if (!rc &&
> + ((subcap_id == TPM_CAP_PROP_TIS_TIMEOUT &&
> + be32_to_cpu(tpm_cmd.header.out.length) != TPM_HEADER_SIZE + 5) ||
> + (subcap_id == TPM_CAP_PROP_TIS_DURATION &&
> + be32_to_cpu(tpm_cmd.header.out.length) != TPM_HEADER_SIZE + 4)))
> + rc = -EINVAL;
> +

Woops, a totally innocuous last-minute (post-testing) cleanup broke
this code; should be TPM_HEADER_SIZE + 20 and + 16. I'll push out v8
as soon as I redo my tests.

--Ed