On Tue, Mar 01, 2022 at 03:21:08AM +0100, Lino Sanfilippo wrote: > @@ -653,8 +623,10 @@ void tpm_chip_unregister(struct tpm_chip *chip) > if (IS_ENABLED(CONFIG_HW_RANDOM_TPM) && !tpm_is_firmware_upgrade(chip)) > hwrng_unregister(&chip->hwrng); > tpm_bios_log_teardown(chip); > - if (chip->flags & TPM_CHIP_FLAG_TPM2 && !tpm_is_firmware_upgrade(chip)) > + if (chip->flags & TPM_CHIP_FLAG_TPM2 && !tpm_is_firmware_upgrade(chip)) { > cdev_device_del(&chip->cdevs, &chip->devs); > + put_device(&chip->devs); > + } I would put those two lines in a function bside tpm_devs_add() as well, more modular. It looks like a good idea to me Jason