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