On 2/1/2018 7:16 AM, James Bottomley wrote:
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).
The current TCG PC Client Device Driver WG wisdom, if you don't want to poll the status bit, is to issue the TPM2_SelfTest with fullTest = yes. 'yes' forces the command to block (not return a response) until the command completes.
The TPM vendors suspect that a loop that re-issues the command in response to TPM_RC_TESTING can make matters worse. If a crypto algorithm self test keeps getting aborted for the TPM to process the command, it has to restart.
My feeling is that, if you going to sleep/loop on something, it's better to loop on dataAvail than resending and looping on TPM_RC_TESTING.