Re: [REGRESSION] suspend to ram fails in 6.2-rc1 due to tpm errors

From: James Bottomley
Date: Thu Jan 05 2023 - 10:19:16 EST


On Thu, 2023-01-05 at 14:59 +0100, Thorsten Leemhuis wrote:
> On 29.12.22 05:03, Jason A. Donenfeld wrote:
> > On Wed, Dec 28, 2022 at 06:07:25PM -0500, James Bottomley wrote:
> > > On Wed, 2022-12-28 at 21:22 +0100, Vlastimil Babka wrote:
> > > > Ugh, while the problem [1] was fixed in 6.1, it's now happening
> > > > again on the T460 with 6.2-rc1. Except I didn't see any oops
> > > > message or "tpm_try_transmit" error this time. The first
> > > > indication of a problem is this during a resume from suspend to
> > > > ram:
> > > >
> > > > tpm tpm0: A TPM error (28) occurred continue selftest
> > > >
> > > > and then periodically
> > > >
> > > > tpm tpm0: A TPM error (28) occurred attempting get random
> > >
> > > That's a TPM 1.2 error which means the TPM failed the selftest. 
> > > The original problem was reported against TPM 2.0  because of a
> > > missing try_get_ops().
> >
> > No, I'm pretty sure the original bug, which was fixed by "char:
> > tpm: Protect tpm_pm_suspend with locks" regards 1.2 as well,
> > especially considering it's the same hardware from Vlastimil
> > causing this. I also recall seeing this in 1.2 when I ran this with
> > the TPM emulator. So that's not correct.
>
> James, are you or some other TPM developer looking into this? Or is
> this deadlocked now?

Not really: TPM 1.2 way predates my interest in the TPM subsystem, and
I've only ever done patches to 2.0. I can look at the paths
theoretically, but I don't have any hardware. Self Test failures tend
to be hardware specific, so even poking around in the emulator is
unlikely to give what might be the cause.

> And if so: how can we get this unstuck to get this regression
> solved?

One of the TPM maintainers with hardware (possibly the specific TPM ...
what is it, by the way?) needs to get involved.

James