* [PATCH RESEND] ARM: pxa: fix error handling in pxa2xx_drv_pcmcia_probe @ 2011-12-27 8:25 Axel Lin 2011-12-27 9:11 ` Eric Miao 2011-12-27 15:24 ` Marek Vasut 0 siblings, 2 replies; 7+ messages in thread From: Axel Lin @ 2011-12-27 8:25 UTC (permalink / raw) To: linux-kernel Cc: Haojian Zhuang, Eric Miao, Russell King, linux-arm-kernel, linux-pcmcia 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> --- 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 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH RESEND] ARM: pxa: fix error handling in pxa2xx_drv_pcmcia_probe 2011-12-27 8:25 [PATCH RESEND] ARM: pxa: fix error handling in pxa2xx_drv_pcmcia_probe Axel Lin @ 2011-12-27 9:11 ` Eric Miao 2011-12-27 9:18 ` Haojian Zhuang 2011-12-27 15:24 ` Marek Vasut 1 sibling, 1 reply; 7+ messages in thread From: Eric Miao @ 2011-12-27 9:11 UTC (permalink / raw) To: Axel Lin Cc: linux-kernel, Haojian Zhuang, Russell King, linux-arm-kernel, linux-pcmcia On Tue, Dec 27, 2011 at 4:25 PM, Axel Lin <axel.lin@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.lin@gmail.com> Acked-by: Eric Miao <eric.y.miao@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 > > > ^ permalink raw reply [flat|nested] 7+ messages in thread
* RE: [PATCH RESEND] ARM: pxa: fix error handling in pxa2xx_drv_pcmcia_probe 2011-12-27 9:11 ` Eric Miao @ 2011-12-27 9:18 ` Haojian Zhuang 2011-12-27 9:25 ` Eric Miao 0 siblings, 1 reply; 7+ messages in thread From: Haojian Zhuang @ 2011-12-27 9:18 UTC (permalink / raw) To: Eric Miao, Axel Lin Cc: linux-kernel, Russell King, linux-arm-kernel, linux-pcmcia ________________________________________ From: Eric Miao [eric.y.miao@gmail.com] Sent: Tuesday, December 27, 2011 5:11 PM To: Axel Lin Cc: linux-kernel@vger.kernel.org; Haojian Zhuang; Russell King; linux-arm-kernel@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.lin@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.lin@gmail.com> Acked-by: Eric Miao <eric.y.miao@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? Thanks Haojian ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH RESEND] ARM: pxa: fix error handling in pxa2xx_drv_pcmcia_probe 2011-12-27 9:18 ` Haojian Zhuang @ 2011-12-27 9:25 ` Eric Miao 2011-12-28 1:04 ` Haojian Zhuang 0 siblings, 1 reply; 7+ messages in thread From: Eric Miao @ 2011-12-27 9:25 UTC (permalink / raw) To: Haojian Zhuang Cc: Axel Lin, linux-kernel, Russell King, linux-arm-kernel, linux-pcmcia On Tue, Dec 27, 2011 at 5:18 PM, Haojian Zhuang <hzhuang1@marvell.com> wrote: > > ________________________________________ > From: Eric Miao [eric.y.miao@gmail.com] > Sent: Tuesday, December 27, 2011 5:11 PM > To: Axel Lin > Cc: linux-kernel@vger.kernel.org; Haojian Zhuang; Russell King; linux-arm-kernel@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.lin@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.lin@gmail.com> > > Acked-by: Eric Miao <eric.y.miao@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. ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH RESEND] ARM: pxa: fix error handling in pxa2xx_drv_pcmcia_probe 2011-12-27 9:25 ` Eric Miao @ 2011-12-28 1:04 ` Haojian Zhuang 2012-02-02 1:59 ` Axel Lin 0 siblings, 1 reply; 7+ messages in thread From: Haojian Zhuang @ 2011-12-28 1:04 UTC (permalink / raw) To: Eric Miao Cc: Haojian Zhuang, Axel Lin, linux-pcmcia, Russell King, linux-kernel, linux-arm-kernel On Tue, Dec 27, 2011 at 5:25 PM, Eric Miao <eric.y.miao@gmail.com> wrote: > On Tue, Dec 27, 2011 at 5:18 PM, Haojian Zhuang <hzhuang1@marvell.com> wrote: >> >> ________________________________________ >> From: Eric Miao [eric.y.miao@gmail.com] >> Sent: Tuesday, December 27, 2011 5:11 PM >> To: Axel Lin >> Cc: linux-kernel@vger.kernel.org; Haojian Zhuang; Russell King; linux-arm-kernel@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.lin@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.lin@gmail.com> >> >> Acked-by: Eric Miao <eric.y.miao@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 ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH RESEND] ARM: pxa: fix error handling in pxa2xx_drv_pcmcia_probe 2011-12-28 1:04 ` Haojian Zhuang @ 2012-02-02 1:59 ` Axel Lin 0 siblings, 0 replies; 7+ messages in thread From: Axel Lin @ 2012-02-02 1:59 UTC (permalink / raw) To: Haojian Zhuang Cc: Eric Miao, Haojian Zhuang, linux-pcmcia, Russell King, linux-kernel, linux-arm-kernel >> >> If it fails, it will jump to err1 anyway. The check there is redundant. >> > Applied Hi Haojian, This patch is not (yet) upstream. Could you help to check it again. Thanks, Axel ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH RESEND] ARM: pxa: fix error handling in pxa2xx_drv_pcmcia_probe 2011-12-27 8:25 [PATCH RESEND] ARM: pxa: fix error handling in pxa2xx_drv_pcmcia_probe Axel Lin 2011-12-27 9:11 ` Eric Miao @ 2011-12-27 15:24 ` Marek Vasut 1 sibling, 0 replies; 7+ messages in thread From: Marek Vasut @ 2011-12-27 15:24 UTC (permalink / raw) To: linux-arm-kernel Cc: Axel Lin, linux-kernel, Russell King, linux-pcmcia, Eric Miao, Haojian Zhuang > 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> > --- > 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; Makes sense Acked-by: Marek Vasut <marek.vasut@gmail.com> ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2012-02-02 1:59 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2011-12-27 8:25 [PATCH RESEND] ARM: pxa: fix error handling in pxa2xx_drv_pcmcia_probe Axel Lin 2011-12-27 9:11 ` Eric Miao 2011-12-27 9:18 ` Haojian Zhuang 2011-12-27 9:25 ` Eric Miao 2011-12-28 1:04 ` Haojian Zhuang 2012-02-02 1:59 ` Axel Lin 2011-12-27 15:24 ` Marek Vasut
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).