tpm: Use durations returned from TPM
The TPM driver currently discards the durations values returned from the TPM. The check of the response packet needs to consider that the return_code field is 0 on success and the size of the expected packet is equivalent to the header size + u32 length indicator for the TPM_GetCapability() result + 3 timeout indicators of type u32. v4: - sysfs entry 'durations' is now a patch of its own - the work-around for TPMs reporting durations in milliseconds is now in a patch of its own v3: - sysfs entry now called 'durations' to resemble TPM-speak (previously was called 'timeouts') v2: - adjusting all timeouts for TPM devices reporting timeouts in msec rather than usec - also displaying in sysfs whether the timeouts are 'original' or 'adjusted' Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com> Tested-by: Guillaume Chazarain <guichaz@gmail.com> Signed-off-by: Rajiv Andrade <srajiv@linux.vnet.ibm.com>
This commit is contained in:
parent
97fb35e413
commit
979b140614
|
@ -575,9 +575,11 @@ duration:
|
||||||
if (rc)
|
if (rc)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (be32_to_cpu(tpm_cmd.header.out.return_code)
|
if (be32_to_cpu(tpm_cmd.header.out.return_code) != 0 ||
|
||||||
!= 3 * sizeof(u32))
|
be32_to_cpu(tpm_cmd.header.out.length)
|
||||||
|
!= sizeof(tpm_cmd.header.out) + sizeof(u32) + 3 * sizeof(u32))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
duration_cap = &tpm_cmd.params.getcap_out.cap.duration;
|
duration_cap = &tpm_cmd.params.getcap_out.cap.duration;
|
||||||
chip->vendor.duration[TPM_SHORT] =
|
chip->vendor.duration[TPM_SHORT] =
|
||||||
usecs_to_jiffies(be32_to_cpu(duration_cap->tpm_short));
|
usecs_to_jiffies(be32_to_cpu(duration_cap->tpm_short));
|
||||||
|
|
Loading…
Reference in New Issue