Re: [PATCH 2/2 v2] tpm_tis: override durations for STM tpm with firmware 1.2.8.28

From: Jarkko Sakkinen
Date: Thu Aug 29 2019 - 18:23:08 EST


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 <peterhuewe@xxxxxx>
> > > Cc: Jarkko Sakkinen <jarkko.sakkinen@xxxxxxxxxxxxxxx>
> > > Cc: Jason Gunthorpe <jgg@xxxxxxxx>
> > > Signed-off-by: Alexey Klimov <aklimov@xxxxxxxxxx>
> > > Signed-off-by: Jerry Snitselaar <jsnitsel@xxxxxxxxxx>
> > > ---
> > > 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