Patchwork drivers/mtd/nand/bcm_umi_nand.c: add missing kfree/ioremap

login
register
mail settings
Submitter Julia Lawall
Date Aug. 10, 2011, 5:42 a.m.
Message ID <1312954935-14592-1-git-send-email-julia@diku.dk>
Download mbox | patch
Permalink /patch/109335/
State New
Headers show

Comments

Julia Lawall - Aug. 10, 2011, 5:42 a.m.
From: Julia Lawall <julia@diku.dk>

The error handling code under the #if should be the same as elsewhere in
the function.

Signed-off-by: Julia Lawall <julia@diku.dk>

---
 drivers/mtd/nand/bcm_umi_nand.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)
Julia Lawall - Aug. 10, 2011, 5:49 a.m.
Oops, please ignore this patch.  I missed another similar problem in the 
same function.

julia


On Wed, 10 Aug 2011, Julia Lawall wrote:

> From: Julia Lawall <julia@diku.dk>
> 
> The error handling code under the #if should be the same as elsewhere in
> the function.
> 
> Signed-off-by: Julia Lawall <julia@diku.dk>
> 
> ---
>  drivers/mtd/nand/bcm_umi_nand.c |    5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/mtd/nand/bcm_umi_nand.c b/drivers/mtd/nand/bcm_umi_nand.c
> index a8ae898..72e8ec2 100644
> --- a/drivers/mtd/nand/bcm_umi_nand.c
> +++ b/drivers/mtd/nand/bcm_umi_nand.c
> @@ -433,8 +433,11 @@ static int __devinit bcm_umi_nand_probe(struct platform_device *pdev)
>  
>  #if USE_DMA
>  	err = nand_dma_init();
> -	if (err != 0)
> +	if (err != 0) {
> +		iounmap(bcm_umi_io_base);
> +		kfree(board_mtd);
>  		return err;
> +	}
>  #endif
>  
>  	/* Figure out the size of the device that we have.
> 
> --
> To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
Ryan Mallon - Aug. 10, 2011, 6:01 a.m.
On 10/08/11 15:42, Julia Lawall wrote:
> From: Julia Lawall<julia@diku.dk>
>
> The error handling code under the #if should be the same as elsewhere in
> the function.
>
> Signed-off-by: Julia Lawall<julia@diku.dk>
>
> ---
>   drivers/mtd/nand/bcm_umi_nand.c |    5 ++++-
>   1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mtd/nand/bcm_umi_nand.c b/drivers/mtd/nand/bcm_umi_nand.c
> index a8ae898..72e8ec2 100644
> --- a/drivers/mtd/nand/bcm_umi_nand.c
> +++ b/drivers/mtd/nand/bcm_umi_nand.c
> @@ -433,8 +433,11 @@ static int __devinit bcm_umi_nand_probe(struct platform_device *pdev)
>
>   #if USE_DMA
>   	err = nand_dma_init();
> -	if (err != 0)
> +	if (err != 0) {
> +		iounmap(bcm_umi_io_base);
> +		kfree(board_mtd);
>   		return err;
> +	}
>   #endif

This probe function should possibly use goto exits on failure. It 
reduces a bit of code duplication and helps prevent this type of error.

~Ryan
Julia Lawall - Aug. 10, 2011, 6:11 a.m.
On Wed, 10 Aug 2011, Ryan Mallon wrote:

> On 10/08/11 15:42, Julia Lawall wrote:
> > From: Julia Lawall<julia@diku.dk>
> >
> > The error handling code under the #if should be the same as elsewhere in
> > the function.
> >
> > Signed-off-by: Julia Lawall<julia@diku.dk>
> >
> > ---
> >   drivers/mtd/nand/bcm_umi_nand.c |    5 ++++-
> >   1 file changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/mtd/nand/bcm_umi_nand.c
> > b/drivers/mtd/nand/bcm_umi_nand.c
> > index a8ae898..72e8ec2 100644
> > --- a/drivers/mtd/nand/bcm_umi_nand.c
> > +++ b/drivers/mtd/nand/bcm_umi_nand.c
> > @@ -433,8 +433,11 @@ static int __devinit bcm_umi_nand_probe(struct
> platform_device *pdev)
> >
> >   #if USE_DMA
> >   	err = nand_dma_init();
> > -	if (err != 0)
> > +	if (err != 0) {
> > +		iounmap(bcm_umi_io_base);
> > +		kfree(board_mtd);
> >   		return err;
> > +	}
> >   #endif
> 
> This probe function should possibly use goto exits on failure. It reduces a
> bit of code duplication and helps prevent this type of error.

OK, I didn't want to make such a major change for only one new case.  But 
since there are three new cases, I will do that.

julia

Patch

diff --git a/drivers/mtd/nand/bcm_umi_nand.c b/drivers/mtd/nand/bcm_umi_nand.c
index a8ae898..72e8ec2 100644
--- a/drivers/mtd/nand/bcm_umi_nand.c
+++ b/drivers/mtd/nand/bcm_umi_nand.c
@@ -433,8 +433,11 @@  static int __devinit bcm_umi_nand_probe(struct platform_device *pdev)
 
 #if USE_DMA
 	err = nand_dma_init();
-	if (err != 0)
+	if (err != 0) {
+		iounmap(bcm_umi_io_base);
+		kfree(board_mtd);
 		return err;
+	}
 #endif
 
 	/* Figure out the size of the device that we have.