TPM selftest failure in 4.15

James Bottomley
2018-02-01T12:16:15Z

Embarrassingly enough, I'm just on my way to do a TPM talk at FOSDEM.
I installed my shiny new 4.15 kernel on the 'plane and this is what I
got after I arrived this morning:

jejb@jarvis:~> dmesg | grep -i tpm
[ 0.000000] ACPI: TPM2 0x0000000079446CC0 000034
(v03 Tpm2Tabl 00000001 AMI 00000000)
[ 1.598059] tpm_tis MSFT0101:00: 2.0 TPM (device-id 0xFE, rev-id 2)
[ 1.608863] tpm tpm0: A TPM error (2314) occurred continue selftest
[ 1.640052] tpm tpm0: A TPM error (2314) occurred continue selftest
[ 1.691215] tpm tpm0: A TPM error (2314) occurred continue selftest
[ 1.782377] tpm tpm0: A TPM error (2314) occurred continue selftest
[ 1.953539] tpm tpm0: A TPM error (2314) occurred continue selftest
[ 2.284701] tpm tpm0: A TPM error (2314) occurred continue selftest
[ 2.935743] tpm tpm0: A TPM error (2314) occurred continue selftest
[ 4.216236] tpm tpm0: TPM self test failed
[ 4.236829] ima: No TPM chip found, activating TPM-bypass! (rc=-19)

The error is TPM_RC_TESTING, which means it looks like we don't wait
long enough for the selftests to complete. I get this all the time
booting with 4.15. Fortunately I have a 4.13 backup kernel which is
fine (otherwise I'd be a bit hosed since all my keys now require a
TPM).

I'll debug on the train; my current suspicion is that the TPM_LONG
duration might be a bit short for this chip (A nuvoton 6xx in a dell
XPS-13).

James