mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 03:20:53 +07:00
67118bb78d
commit 8c657a0590de585b1115847c17b34a58025f2f4b upstream.
When TPM 2.0 trusted keys code was moved to the trusted keys subsystem,
the operations were unwrapped from tpm_try_get_ops() and tpm_put_ops(),
which are used to take temporarily the ownership of the TPM chip. The
ownership is only taken inside tpm_send(), but this is not sufficient,
as in the key load TPM2_CC_LOAD, TPM2_CC_UNSEAL and TPM2_FLUSH_CONTEXT
need to be done as a one single atom.
Take the TPM chip ownership before sending anything with
tpm_try_get_ops() and tpm_put_ops(), and use tpm_transmit_cmd() to send
TPM commands instead of tpm_send(), reverting back to the old behaviour.
Fixes:
|
||
---|---|---|
.. | ||
encrypted-keys | ||
trusted-keys | ||
big_key.c | ||
compat_dh.c | ||
compat.c | ||
dh.c | ||
gc.c | ||
internal.h | ||
Kconfig | ||
key.c | ||
keyctl_pkey.c | ||
keyctl.c | ||
keyring.c | ||
Makefile | ||
permission.c | ||
persistent.c | ||
proc.c | ||
process_keys.c | ||
request_key_auth.c | ||
request_key.c | ||
sysctl.c | ||
user_defined.c |