[PATCH 0/1] [SRU][F][OEM-5.6][OEM-OSP1-B] UBUNTU: SAUCE: tpm: fix TIS locality timeout problems

Ivan Hu ivan.hu at canonical.com
Tue Jun 2 14:13:23 UTC 2020


BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1881710

[Impact]
It has been reported that some TIS based TPMs are giving unexpected errors when
using the O_NONBLOCK path of the TPM device. The problem is that some TPMs
don't like it when you get and then relinquish a locality
(as the tpm_try_get_ops()/tpm_put_ops() pair does) without sending a command.
This currently happens all the time in the O_NONBLOCK write path.
This affects Nuvoton TPMs and was a regression caused by the patch d23d12484307
("tpm: fix invalid locking in NONBLOCKING mode").
PatchLink: https://patchwork.kernel.org/patch/11576453/

[Fix]
Fix this by moving the tpm_try_get_ops()
further down the code to after the O_NONBLOCK determination is made.
This is safe because the priv->buffer_mutex still protects the priv
state being modified.

[Regression Risk]
Low. This patch only for fix the patch d23d12484307 ("tpm: fix invalid locking
in NONBLOCKING mode").

James Bottomley (1):
  tpm: fix TIS locality timeout problems

 drivers/char/tpm/tpm-dev-common.c | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

-- 
2.17.1




More information about the kernel-team mailing list