> > --- 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) { > > - down_write(&chip->ops_sem); > > tpm2_shutdown(chip, TPM2_SU_CLEAR); > > chip->ops = NULL; > > - 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