mtd: physmap_of: Fix resources leak in 'of_flash_probe()'

Submitted by Christophe Jaillet on Aug. 6, 2017, 12:55 p.m.

Details

Message ID 20170806125501.10368-1-christophe.jaillet@wanadoo.fr
State Accepted
Delegated to: Boris Brezillon
Headers show

Commit Message

Christophe Jaillet Aug. 6, 2017, 12:55 p.m.
If 'of_flash_probe_gemini()' or 'of_flash_probe_versatile()' fail, we must
reslease some resources, as already done in all error handling paths in
this function.

Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
 drivers/mtd/maps/physmap_of_core.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Boris Brezillon Aug. 17, 2017, 1:03 p.m.
Le Sun,  6 Aug 2017 14:55:01 +0200,
Christophe JAILLET <christophe.jaillet@wanadoo.fr> a écrit :

> If 'of_flash_probe_gemini()' or 'of_flash_probe_versatile()' fail, we must
> reslease some resources, as already done in all error handling paths in
> this function.

Applied to l2-mtd/master.

Thanks,

Boris

> 
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
> ---
>  drivers/mtd/maps/physmap_of_core.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/mtd/maps/physmap_of_core.c b/drivers/mtd/maps/physmap_of_core.c
> index 62fa6836f218..2c8cc97ce019 100644
> --- a/drivers/mtd/maps/physmap_of_core.c
> +++ b/drivers/mtd/maps/physmap_of_core.c
> @@ -235,10 +235,10 @@ static int of_flash_probe(struct platform_device *dev)
>  
>  		err = of_flash_probe_gemini(dev, dp, &info->list[i].map);
>  		if (err)
> -			return err;
> +			goto err_out;
>  		err = of_flash_probe_versatile(dev, dp, &info->list[i].map);
>  		if (err)
> -			return err;
> +			goto err_out;
>  
>  		err = -ENOMEM;
>  		info->list[i].map.virt = ioremap(info->list[i].map.phys,

Patch hide | download patch | download mbox

diff --git a/drivers/mtd/maps/physmap_of_core.c b/drivers/mtd/maps/physmap_of_core.c
index 62fa6836f218..2c8cc97ce019 100644
--- a/drivers/mtd/maps/physmap_of_core.c
+++ b/drivers/mtd/maps/physmap_of_core.c
@@ -235,10 +235,10 @@  static int of_flash_probe(struct platform_device *dev)
 
 		err = of_flash_probe_gemini(dev, dp, &info->list[i].map);
 		if (err)
-			return err;
+			goto err_out;
 		err = of_flash_probe_versatile(dev, dp, &info->list[i].map);
 		if (err)
-			return err;
+			goto err_out;
 
 		err = -ENOMEM;
 		info->list[i].map.virt = ioremap(info->list[i].map.phys,