On Mon, Apr 29, 2013 at 06:36:34PM +0900, Jingoo Han wrote: > Use devm_*() functions to make cleanup paths simpler. > > Signed-off-by: Jingoo Han <jg1.han@xxxxxxxxxxx> > --- > drivers/watchdog/ts72xx_wdt.c | 64 +++++++---------------------------------- > 1 files changed, 11 insertions(+), 53 deletions(-) > > diff --git a/drivers/watchdog/ts72xx_wdt.c b/drivers/watchdog/ts72xx_wdt.c > index b8a9245..b19ca75 100644 > --- a/drivers/watchdog/ts72xx_wdt.c > +++ b/drivers/watchdog/ts72xx_wdt.c > @@ -396,7 +396,7 @@ static int ts72xx_wdt_probe(struct platform_device *pdev) > struct resource *r1, *r2; > int error = 0; > > - wdt = kzalloc(sizeof(struct ts72xx_wdt), GFP_KERNEL); > + wdt = devm_kzalloc(&pdev->dev, sizeof(struct ts72xx_wdt), GFP_KERNEL); > if (!wdt) { > dev_err(&pdev->dev, "failed to allocate memory\n"); > return -ENOMEM; > @@ -405,44 +405,22 @@ static int ts72xx_wdt_probe(struct platform_device *pdev) > r1 = platform_get_resource(pdev, IORESOURCE_MEM, 0); > if (!r1) { > dev_err(&pdev->dev, "failed to get memory resource\n"); > - error = -ENODEV; > - goto fail; > - } > - > - r1 = request_mem_region(r1->start, resource_size(r1), pdev->name); > - if (!r1) { > - dev_err(&pdev->dev, "cannot request memory region\n"); > - error = -EBUSY; > - goto fail; > + return -ENODEV; > } > > - wdt->control_reg = ioremap(r1->start, resource_size(r1)); > - if (!wdt->control_reg) { > - dev_err(&pdev->dev, "failed to map memory\n"); > - error = -ENODEV; > - goto fail_free_control; > - } > + wdt->control_reg = devm_ioremap_resource(&pdev->dev, r1); > + if (IS_ERR(wdt->control_reg)) > + return PTR_ERR(wdt->control_reg); > > r2 = platform_get_resource(pdev, IORESOURCE_MEM, 1); > if (!r2) { > dev_err(&pdev->dev, "failed to get memory resource\n"); > - error = -ENODEV; > - goto fail_unmap_control; > + return -ENODEV; > } > > - r2 = request_mem_region(r2->start, resource_size(r2), pdev->name); > - if (!r2) { > - dev_err(&pdev->dev, "cannot request memory region\n"); > - error = -EBUSY; > - goto fail_unmap_control; > - } > - > - wdt->feed_reg = ioremap(r2->start, resource_size(r2)); > - if (!wdt->feed_reg) { > - dev_err(&pdev->dev, "failed to map memory\n"); > - error = -ENODEV; > - goto fail_free_feed; > - } > + wdt->feed_reg = devm_ioremap_resource(&pdev->dev, r2); > + if (IS_ERR(wdt->feed_reg)) > + return PTR_ERR(wdt->feed_reg); > You have a mix of returns with and without error messages now. Can you make sure that this is all consistent ? Thanks, Guenter -- To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html