On Wed Oct 02 19, Jarkko Sakkinen wrote:
On Mon, Sep 02, 2019 at 07:27:32AM -0700, Jerry Snitselaar wrote:
We've run into a case where a customer has an STM TPM 1.2 chip
(version 1.2.8.28), that is getting into an inconsistent state and
they end up getting tpm transmit errors. In really old tpm code this
wasn't seen because the code that grabbed the duration values from the
chip could fail silently, and would proceed to just use default values
and move forward. More recent code though successfully gets the
duration values from the chip, and using those values this particular
chip version gets into the state seen by the customer.
The idea with this patchset is to provide a facility like the
update_timeouts operation to allow the override of chip supplied
values.
changes from v3:
* Assign value to version when tpm1_getcap is successful for TPM 1.1 device
not when it fails.
changes from v2:
* Added patch 1/3
* Rework tpm_tis_update_durations to make use of new version structs
and pull tpm1_getcap calls out of loop.
changes from v1:
* Remove unneeded newline
* Formatting cleanups
* Change tpm_tis_update_durations to be a void function, and
use chip->duration_adjusted to track whether adjustment was
made.
Jarkko Sakkinen (1):
tpm: Remove duplicate code from caps_show() in tpm-sysfs.c
Jerry Snitselaar (2):
tpm: provide a way to override the chip returned durations
tpm_tis: override durations for STM tpm with firmware 1.2.8.28
I applied to my master branch.
Probably hard to get wide testing given the "niche" case when the
issue happens. Should be sufficient that the commonc case still
works.
/Jarkko
Yeah, it is a pain. The people with the problem systems tested an
earlier version of Alexey's patches. I have a system with a different
rev STM device, so I did some testing with a modified patch that keyed
off that revision, but it will be hard to get it wide exposure.