[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1454988630-27942-1-git-send-email-jarkko.sakkinen@linux.intel.com>
Date: Tue, 9 Feb 2016 05:30:30 +0200
From: Jarkko Sakkinen <jarkko.sakkinen@...ux.intel.com>
To: Peter Huewe <peterhuewe@....de>
Cc: tpmdd-devel@...ts.sourceforge.net, linux-kernel@...r.kernel.org,
Jarkko Sakkinen <jarkko.sakkinen@...ux.intel.com>,
stable@...r.kernel.org
Subject: [PATCH] tpm: fix the cleanup of struct tpm_chip
If the initialization fails before tpm_chip_register(), put_device()
will be not called, which causes release callback not to be called.
This patch fixes the issue by adding put_device() to devres list of
the parent device.
Fixes: 313d21eeab ("tpm: device class for tpm")
Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@...ux.intel.com>
cc: stable@...r.kernel.org
---
drivers/char/tpm/tpm-chip.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/char/tpm/tpm-chip.c b/drivers/char/tpm/tpm-chip.c
index 1a9dcee..ea904d1 100644
--- a/drivers/char/tpm/tpm-chip.c
+++ b/drivers/char/tpm/tpm-chip.c
@@ -136,6 +136,8 @@ struct tpm_chip *tpmm_chip_alloc(struct device *dev,
chip->cdev.owner = chip->pdev->driver->owner;
chip->cdev.kobj.parent = &chip->dev.kobj;
+ devm_add_action(dev, (void (*)(void *)) put_device, &chip->dev);
+
return chip;
}
EXPORT_SYMBOL_GPL(tpmm_chip_alloc);
--
2.7.0
Powered by blists - more mailing lists