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