Message ID | 1324994491-21828-7-git-send-email-julia@diku.dk |
---|---|
State | Accepted |
Commit | bca7f5f71389547489fffe6c757eaff8659bcd16 |
Headers | show |
On Tue, 2011-12-27 at 15:01 +0100, Julia Lawall wrote: > From: Julia Lawall <julia@diku.dk> > > Reimplement a call to devm_request_mem_region followed by a call to ioremap > or ioremap_nocache by a call to devm_request_and_ioremap. > > The semantic patch that makes this transformation is as follows: > (http://coccinelle.lip6.fr/) > > // <smpl> > @nm@ > expression myname; > identifier i; > @@ > > struct platform_driver i = { .driver = { .name = myname } }; > > @@ > expression dev,res,size; > expression nm.myname; > @@ > > -if (!devm_request_mem_region(dev, res->start, size, > - \(res->name\|dev_name(dev)\|myname\))) { > - ... > - return ...; > -} > ... when != res->start > ( > -devm_ioremap(dev,res->start,size) > +devm_request_and_ioremap(dev,res) > | > -devm_ioremap_nocache(dev,res->start,size) > +devm_request_and_ioremap(dev,res) > ) > ... when any > when != res->start > // </smpl> > > Signed-off-by: Julia Lawall <julia@diku.dk> Pushed to l2-mtd-2.6.git, thanks! I think this semantic patch is also useful and deserves to be added to scripts/coccinelle. In general, it would be great if you sumbitted useful spatches there for inclusion.
On Tue, 27 Dec 2011, Artem Bityutskiy wrote: > On Tue, 2011-12-27 at 15:01 +0100, Julia Lawall wrote: >> From: Julia Lawall <julia@diku.dk> >> >> Reimplement a call to devm_request_mem_region followed by a call to ioremap >> or ioremap_nocache by a call to devm_request_and_ioremap. >> >> The semantic patch that makes this transformation is as follows: >> (http://coccinelle.lip6.fr/) >> >> // <smpl> >> @nm@ >> expression myname; >> identifier i; >> @@ >> >> struct platform_driver i = { .driver = { .name = myname } }; >> >> @@ >> expression dev,res,size; >> expression nm.myname; >> @@ >> >> -if (!devm_request_mem_region(dev, res->start, size, >> - \(res->name\|dev_name(dev)\|myname\))) { >> - ... >> - return ...; >> -} >> ... when != res->start >> ( >> -devm_ioremap(dev,res->start,size) >> +devm_request_and_ioremap(dev,res) >> | >> -devm_ioremap_nocache(dev,res->start,size) >> +devm_request_and_ioremap(dev,res) >> ) >> ... when any >> when != res->start >> // </smpl> >> >> Signed-off-by: Julia Lawall <julia@diku.dk> > > Pushed to l2-mtd-2.6.git, thanks! > > I think this semantic patch is also useful and deserves to be added to > scripts/coccinelle. In general, it would be great if you sumbitted > useful spatches there for inclusion. OK, I will add this one as well. julia
diff --git a/drivers/mtd/nand/txx9ndfmc.c b/drivers/mtd/nand/txx9ndfmc.c index ace46fd..c7c4f1d 100644 --- a/drivers/mtd/nand/txx9ndfmc.c +++ b/drivers/mtd/nand/txx9ndfmc.c @@ -298,11 +298,7 @@ static int __init txx9ndfmc_probe(struct platform_device *dev) drvdata = devm_kzalloc(&dev->dev, sizeof(*drvdata), GFP_KERNEL); if (!drvdata) return -ENOMEM; - if (!devm_request_mem_region(&dev->dev, res->start, - resource_size(res), dev_name(&dev->dev))) - return -EBUSY; - drvdata->base = devm_ioremap(&dev->dev, res->start, - resource_size(res)); + drvdata->base = devm_request_and_ioremap(&dev->dev, res); if (!drvdata->base) return -EBUSY;