On Thu, Aug 29, 2019 at 01:25:27PM -0700, Jerry Snitselaar wrote: > On Thu Aug 29 19, Jarkko Sakkinen wrote: > > On Tue, Aug 27, 2019 at 05:46:21PM -0700, Jerry Snitselaar wrote: > > > There was revealed a bug in the STM TPM chipset used in Dell R415s. > > > Bug is observed so far only on chipset firmware 1.2.8.28 > > > (1.2 TPM, device-id 0x0, rev-id 78). After some number of > > > operations chipset hangs and stays in inconsistent state: > > > > > > tpm_tis 00:09: Operation Timed out > > > tpm_tis 00:09: tpm_transmit: tpm_send: error -5 > > > > > > Durations returned by the chip are the same like on other > > > firmware revisions but apparently with specifically 1.2.8.28 fw > > > durations should be reset to 2 minutes to enable tpm chip work > > > properly. No working way of updating firmware was found. > > > > > > This patch adds implementation of ->update_durations method > > > that matches only STM devices with specific firmware version. > > > > > > Cc: Peter Huewe <peterhu...@gmx.de> > > > Cc: Jarkko Sakkinen <jarkko.sakki...@linux.intel.com> > > > Cc: Jason Gunthorpe <j...@ziepe.ca> > > > Signed-off-by: Alexey Klimov <akli...@redhat.com> > > > Signed-off-by: Jerry Snitselaar <jsnit...@redhat.com> > > > --- > > > v2: Make suggested changes from Jarkko > > > - change struct field name to durations from durs > > > - formatting cleanups > > > - turn into void function like update_timeouts and > > > use chip->duration_adjusted to track whether adjustment occurred. > > > > The code repetition looks horrible so I wrote a patch that should help: > > > > https://patchwork.kernel.org/patch/11121475/ > > > > Read the remar that prepends the diffstat. > > > > /Jarkko > > LGTM, and testing it on a 1.2 tpm system here worked fine. You can add my > Reviewed-by and Tested-by. > > I have reworked this 2/2 patch to make use of these new structs and > pull the tpm1_getcap calls out of the for loop. So I will submit a v3 > to go on top of your patch.
Add my patch to the patch set with the tags. /Jarkko