From: Sudip Mukherjee <[email protected]> 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.
Reviewed-by: Jason Gunthorpe <[email protected]> Signed-off-by: Sudip Mukherjee <[email protected]> --- v2: rebased against the current charmisc-testing branch. drivers/char/tpm/tpm-chip.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/char/tpm/tpm-chip.c b/drivers/char/tpm/tpm-chip.c index 274dd01..4c2deea 100644 --- a/drivers/char/tpm/tpm-chip.c +++ b/drivers/char/tpm/tpm-chip.c @@ -137,11 +137,10 @@ struct tpm_chip *tpmm_chip_alloc(struct device *dev, chip->cdev.owner = chip->pdev->driver->owner; chip->cdev.kobj.parent = &chip->dev.kobj; - rc = devm_add_action(dev, (void (*)(void *)) put_device, &chip->dev); - if (rc) { - put_device(&chip->dev); + rc = devm_add_action_or_reset(dev, (void (*)(void *)) put_device, + &chip->dev); + if (rc) return ERR_PTR(rc); - } return chip; } -- 1.9.1 ------------------------------------------------------------------------------ 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 _______________________________________________ tpmdd-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/tpmdd-devel
