diff mbox

tpm: use devm_add_action_or_reset

Message ID 1461617198-32351-1-git-send-email-sudipm.mukherjee@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Sudip Mukherjee April 25, 2016, 8:46 p.m. UTC
If devm_add_action() fails we are explicitly calling the cleanup function
in the error path. Lets use the helper function devm_add_action_or_reset()
and return directly as we know the cleanup has been done by the helper.

Signed-off-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
---
 drivers/char/tpm/tpm-chip.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

Comments

Sudip Mukherjee April 30, 2016, 5 p.m. UTC | #1
On Tue, Apr 26, 2016 at 11:30:14AM +0300, Jarkko Sakkinen wrote:
> On Mon, Apr 25, 2016 at 09:46:38PM +0100, Sudip Mukherjee wrote:
> > If devm_add_action() fails we are explicitly calling the cleanup function
> > in the error path. Lets use the helper function devm_add_action_or_reset()
> > and return directly as we know the cleanup has been done by the helper.
> 
> Have you verified that this compiles against my tree?

This was done against linux-next. But now I have just rebased against
the charmisc tree and sent v2. Also added the Reviewed-by tag to it.
(hope thats ok)

regards
sudip

------------------------------------------------------------------------------
Find and fix application performance issues faster with Applications Manager
Applications Manager provides deep performance insights into multiple tiers of
your business applications. It resolves application problems quickly and
reduces your MTTR. Get your free trial!
https://ad.doubleclick.net/ddm/clk/302982198;130105516;z
diff mbox

Patch

diff --git a/drivers/char/tpm/tpm-chip.c b/drivers/char/tpm/tpm-chip.c
index 5bc530c..aca4505 100644
--- a/drivers/char/tpm/tpm-chip.c
+++ b/drivers/char/tpm/tpm-chip.c
@@ -212,11 +212,10 @@  struct tpm_chip *tpmm_chip_alloc(struct device *pdev,
 	if (IS_ERR(chip))
 		return chip;
 
-	rc = devm_add_action(pdev, (void (*)(void *)) put_device, &chip->dev);
-	if (rc) {
-		put_device(&chip->dev);
+	rc = devm_add_action_or_reset(pdev, (void (*)(void *)) put_device,
+				      &chip->dev);
+	if (rc)
 		return ERR_PTR(rc);
-	}
 
 	dev_set_drvdata(pdev, chip);