On Sun, Jul 01, 2012 at 08:28:27AM +0800, Axel Lin wrote: > Signed-off-by: Axel Lin > --- > drivers/pwm/pwm-pxa.c | 52 +++++++++++-------------------------------------- > 1 file changed, 11 insertions(+), 41 deletions(-) > > diff --git a/drivers/pwm/pwm-pxa.c b/drivers/pwm/pwm-pxa.c [...] > @@ -192,35 +180,17 @@ static int __devinit pwm_probe(struct platform_device *pdev) > > platform_set_drvdata(pdev, pwm); > return 0; > - > -err_free_mem: > - release_mem_region(r->start, resource_size(r)); > -err_free_clk: > - clk_put(pwm->clk); > -err_free: > - kfree(pwm); > - return ret; > } > > static int __devexit pwm_remove(struct platform_device *pdev) > { > struct pxa_pwm_chip *chip; > - struct resource *r; > > chip = platform_get_drvdata(pdev); > if (chip == NULL) > return -ENODEV; > > - pwmchip_remove(&chip->chip); > - > - iounmap(chip->mmio_base); > - > - r = platform_get_resource(pdev, IORESOURCE_MEM, 0); > - release_mem_region(r->start, resource_size(r)); > - > - clk_put(chip->clk); > - kfree(chip); > - return 0; > + return pwmchip_remove(&chip->chip); What I meant was that this driver didn't return an error on failure of pwmchip_remove() before so incorporating this change is unrelated to this patch. Either make it a separate patch (preferably) or at least mention it in the commit message. Thierry