Re: [PATCH 2/2] drivers/mtd/maps/lantiq-flash.c: drop iounmap fordevm_ allocated data

From: Artem Bityutskiy
Date: Tue Dec 27 2011 - 03:22:17 EST


On Mon, 2011-12-26 at 18:38 +0100, Julia Lawall wrote:
> From: Julia Lawall <julia@xxxxxxx>
>
> Data allocated with devm_ioremap or devm_ioremap_nocache should not be
> freed using iounmap, because doing so causes a dangling pointer, and a
> subsequent double free.
>
> The semantic match that finds this problem is as follows:
> (http://coccinelle.lip6.fr/)
>
> // <smpl>
> @r@
> expression x;
> @@
> (
> x = devm_ioremap(...)
> |
> x = devm_ioremap_nocache(...)
> )
>
> @@
> expression r.x;
> @@
> * iounmap(x)
> // </smpl>

Thanks Julia,

surely this semantic patch script is worth adding to scripts/coccinelle?
Are you going to take care of this?

>
> Signed-off-by: Julia Lawall <julia@xxxxxxx>
>
> ---
> drivers/mtd/maps/lantiq-flash.c | 6 +-----
> 1 file changed, 1 insertion(+), 5 deletions(-)
>
> diff --git a/drivers/mtd/maps/lantiq-flash.c b/drivers/mtd/maps/lantiq-flash.c
> index 4f10e27..7b889de 100644
> --- a/drivers/mtd/maps/lantiq-flash.c
> +++ b/drivers/mtd/maps/lantiq-flash.c
> @@ -159,7 +159,7 @@ ltq_mtd_probe(struct platform_device *pdev)
> if (!ltq_mtd->mtd) {
> dev_err(&pdev->dev, "probing failed\n");
> err = -ENXIO;
> - goto err_unmap;
> + goto err_free;
> }

Pushed to l2-mtd-2.6.git, thanks!

--
Best Regards,
Artem Bityutskiy

Attachment: signature.asc
Description: This is a digitally signed message part