Skip to content

Commit

Permalink
tpm: Fix TPM 1.2 Shutdown sequence to prevent future TPM operations
Browse files Browse the repository at this point in the history
TPM 2.0 Shutdown involve sending TPM2_Shutdown to TPM chip and disabling
future TPM operations. TPM 1.2 behavior was different, future TPM
operations weren't disabled, causing rare issues. This patch ensures
that future TPM operations are disabled.

Fixes: d1bd4a7 ("tpm: Issue a TPM2_Shutdown for TPM2 devices.")
Cc: [email protected]
Signed-off-by: Vadim Sukhomlinov <[email protected]>
[dianders: resolved merge conflicts with mainline]
Signed-off-by: Douglas Anderson <[email protected]>
Reviewed-by: Jarkko Sakkinen <[email protected]>
Signed-off-by: Jarkko Sakkinen <[email protected]>
  • Loading branch information
vsukhoml authored and Jarkko Sakkinen committed Jun 24, 2019
1 parent 6b03261 commit db4d8cb
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions drivers/char/tpm/tpm-chip.c
Original file line number Diff line number Diff line change
Expand Up @@ -289,15 +289,15 @@ static int tpm_class_shutdown(struct device *dev)
{
struct tpm_chip *chip = container_of(dev, struct tpm_chip, dev);

down_write(&chip->ops_sem);
if (chip->flags & TPM_CHIP_FLAG_TPM2) {
down_write(&chip->ops_sem);
if (!tpm_chip_start(chip)) {
tpm2_shutdown(chip, TPM2_SU_CLEAR);
tpm_chip_stop(chip);
}
chip->ops = NULL;
up_write(&chip->ops_sem);
}
chip->ops = NULL;
up_write(&chip->ops_sem);

return 0;
}
Expand Down

0 comments on commit db4d8cb

Please sign in to comment.