On Tue, Dec 27, 2011 at 5:25 PM, Eric Miao <eric.y.m...@gmail.com> wrote: > On Tue, Dec 27, 2011 at 5:18 PM, Haojian Zhuang <hzhua...@marvell.com> wrote: >> >> ________________________________________ >> From: Eric Miao [eric.y.m...@gmail.com] >> Sent: Tuesday, December 27, 2011 5:11 PM >> To: Axel Lin >> Cc: linux-ker...@vger.kernel.org; Haojian Zhuang; Russell King; >> linux-arm-ker...@lists.infradead.org; linux-pcmcia@lists.infradead.org >> Subject: Re: [PATCH RESEND] ARM: pxa: fix error handling in >> pxa2xx_drv_pcmcia_probe >> >> On Tue, Dec 27, 2011 at 4:25 PM, Axel Lin <axel....@gmail.com> wrote: >>> 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....@gmail.com> >> >> Acked-by: Eric Miao <eric.y.m...@gmail.com> >> >>> --- >>> 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 a87e272..64d433e 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; >>> -- >>> 1.7.5.4 >>> >>> >>> >> Wait a minute. >> >> The original code will check whether pxa2xx_drv_pcmcia_add_one() successful. >> If it fails, we'll remove all devices that we registered. >> >> But Axel removed these code. Why? > > If it fails, it will jump to err1 anyway. The check there is redundant. > Applied
_______________________________________________ Linux PCMCIA reimplementation list http://lists.infradead.org/mailman/listinfo/linux-pcmcia