diff options
author | Axel Lin <axel.lin@gmail.com> | 2011-12-27 16:25:44 +0800 |
---|---|---|
committer | Haojian Zhuang <haojian.zhuang@marvell.com> | 2012-02-16 10:41:23 +0800 |
commit | 8fb28231a907f02d879a075cee7ec610b6439be0 (patch) | |
tree | cd294a321513058dd600e88a97f41df273fe2fbd /drivers/pcmcia/pxa2xx_base.c | |
parent | be9bac9d33c0864ac7684c683df5da3b0c38e3b7 (diff) | |
download | linux-8fb28231a907f02d879a075cee7ec610b6439be0.tar.gz linux-8fb28231a907f02d879a075cee7ec610b6439be0.tar.bz2 linux-8fb28231a907f02d879a075cee7ec610b6439be0.zip |
ARM: pxa: fix error handling in pxa2xx_drv_pcmcia_probe
If pxa2xx_drv_pcmcia_add_one fails, it will go to err1 error path.
Add a missing clk_put in the error path.
Checking the ret value after the for loop is redundant, it is always false.
Thus remove the redundant checking.
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Eric Miao <eric.y.miao@gmail.com>
Acked-by: Marek Vasut <marek.vasut@gmail.com>
Signed-off-by: Haojian Zhuang <haojian.zhuang@gmail.com>
Diffstat (limited to 'drivers/pcmcia/pxa2xx_base.c')
-rw-r--r-- | drivers/pcmcia/pxa2xx_base.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/drivers/pcmcia/pxa2xx_base.c b/drivers/pcmcia/pxa2xx_base.c index a87e2728b2c3..64d433ec4fc6 100644 --- a/drivers/pcmcia/pxa2xx_base.c +++ b/drivers/pcmcia/pxa2xx_base.c @@ -328,21 +328,15 @@ static int pxa2xx_drv_pcmcia_probe(struct platform_device *dev) goto err1; } - if (ret) { - while (--i >= 0) - soc_pcmcia_remove_one(&sinfo->skt[i]); - kfree(sinfo); - clk_put(clk); - } else { - pxa2xx_configure_sockets(&dev->dev); - dev_set_drvdata(&dev->dev, sinfo); - } + pxa2xx_configure_sockets(&dev->dev); + dev_set_drvdata(&dev->dev, sinfo); return 0; err1: while (--i >= 0) soc_pcmcia_remove_one(&sinfo->skt[i]); + clk_put(clk); kfree(sinfo); err0: return ret; |