diff mbox

tpm: use devm_add_action_or_reset

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

Commit Message

Sudip Mukherjee June 12, 2016, 2:05 p.m. UTC
If devm_add_action() fails we are explicitly calling put_device() to
free the resources allocated. Lets use the helper
devm_add_action_or_reset() and return directly in case of error, as we
know that the cleanup function has been already called by the helper if
there was any error.

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

Comments

Jarkko Sakkinen June 16, 2016, 8:28 p.m. UTC | #1
On Sun, Jun 12, 2016 at 03:05:29PM +0100, Sudip Mukherjee wrote:
> If devm_add_action() fails we are explicitly calling put_device() to
> free the resources allocated. Lets use the helper
> devm_add_action_or_reset() and return directly in case of error, as we
> know that the cleanup function has been already called by the helper if
> there was any error.
> 
> Signed-off-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>

Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>

/Jarkko

> ---
>  drivers/char/tpm/tpm-chip.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/char/tpm/tpm-chip.c b/drivers/char/tpm/tpm-chip.c
> index 1965dc7..5a2f043 100644
> --- a/drivers/char/tpm/tpm-chip.c
> +++ b/drivers/char/tpm/tpm-chip.c
> @@ -213,11 +213,11 @@ 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);
>  
> -- 
> 1.9.1
> 

------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports. http://sdm.link/zohomanageengine
Jarkko Sakkinen June 27, 2016, 2:04 p.m. UTC | #2
On Thu, Jun 16, 2016 at 10:28:23PM +0200, Jarkko Sakkinen wrote:
> On Sun, Jun 12, 2016 at 03:05:29PM +0100, Sudip Mukherjee wrote:
> > If devm_add_action() fails we are explicitly calling put_device() to
> > free the resources allocated. Lets use the helper
> > devm_add_action_or_reset() and return directly in case of error, as we
> > know that the cleanup function has been already called by the helper if
> > there was any error.
> > 
> > Signed-off-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
> 
> Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>

Applied to master.

/Jarkko

------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
diff mbox

Patch

diff --git a/drivers/char/tpm/tpm-chip.c b/drivers/char/tpm/tpm-chip.c
index 1965dc7..5a2f043 100644
--- a/drivers/char/tpm/tpm-chip.c
+++ b/drivers/char/tpm/tpm-chip.c
@@ -213,11 +213,11 @@  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);