|
@@ -187,12 +187,13 @@ static int tpm_class_shutdown(struct device *dev)
|
|
|
{
|
|
{
|
|
|
struct tpm_chip *chip = container_of(dev, struct tpm_chip, dev);
|
|
struct tpm_chip *chip = container_of(dev, struct tpm_chip, dev);
|
|
|
|
|
|
|
|
|
|
+ down_write(&chip->ops_sem);
|
|
|
if (chip->flags & TPM_CHIP_FLAG_TPM2) {
|
|
if (chip->flags & TPM_CHIP_FLAG_TPM2) {
|
|
|
- down_write(&chip->ops_sem);
|
|
|
|
|
tpm2_shutdown(chip, TPM2_SU_CLEAR);
|
|
tpm2_shutdown(chip, TPM2_SU_CLEAR);
|
|
|
chip->ops = NULL;
|
|
chip->ops = NULL;
|
|
|
- up_write(&chip->ops_sem);
|
|
|
|
|
}
|
|
}
|
|
|
|
|
+ chip->ops = NULL;
|
|
|
|
|
+ up_write(&chip->ops_sem);
|
|
|
|
|
|
|
|
return 0;
|
|
return 0;
|
|
|
}
|
|
}
|