--- a/drivers/char/tpm/tpm-chip.c +++ b/drivers/char/tpm/tpm-chip.c @@ -187,12 +187,13 @@ 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) {
tpm2_shutdown(chip, TPM2_SU_CLEAR); chip->ops = NULL;down_write(&chip->ops_sem);
}up_write(&chip->ops_sem);
- chip->ops = NULL;
- up_write(&chip->ops_sem);
return 0; }
Still can be improved -- chip->ops = NULL; is done twice, copy inside the if {} is redundant...
Thanks. I can update this.
/Jarkko