tpm: Issue a TPM2_Shutdown for TPM2 devices.
authorJosh Zimmerman <joshz@google.com>
Sun, 25 Jun 2017 21:53:24 +0000 (14:53 -0700)
committerRaspbian kernel package updater <root@raspbian.org>
Sun, 23 Jul 2017 03:08:57 +0000 (03:08 +0000)
commit541fd03b7bfab2763f40e6f54e679b25aa7dcd65
tree362552207b7df17e6a0e7397f74fc4b52b317684
parent3e91617f6464d2a641d7e36645cf7c6e117dc468
tpm: Issue a TPM2_Shutdown for TPM2 devices.

commit d1bd4a792d3961a04e6154118816b00167aad91a upstream.

If a TPM2 loses power without a TPM2_Shutdown command being issued (a
"disorderly reboot"), it may lose some state that has yet to be
persisted to NVRam, and will increment the DA counter. After the DA
counter gets sufficiently large, the TPM will lock the user out.

NOTE: This only changes behavior on TPM2 devices. Since TPM1 uses sysfs,
and sysfs relies on implicit locking on chip->ops, it is not safe to
allow this code to run in TPM1, or to add sysfs support to TPM2, until
that locking is made explicit.

Signed-off-by: Josh Zimmerman <joshz@google.com>
Fixes: 74d6b3ceaa17 ("tpm: fix suspend/resume paths for TPM 2.0")
Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Tested-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Signed-off-by: James Morris <james.l.morris@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/char/tpm/tpm-chip.c
drivers/char/tpm/tpm-sysfs.c