Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754148AbZGNHuj (ORCPT ); Tue, 14 Jul 2009 03:50:39 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754112AbZGNHuh (ORCPT ); Tue, 14 Jul 2009 03:50:37 -0400 Received: from zone0.gcu-squad.org ([212.85.147.21]:34614 "EHLO services.gcu-squad.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754010AbZGNHud (ORCPT ); Tue, 14 Jul 2009 03:50:33 -0400 Date: Tue, 14 Jul 2009 09:50:18 +0200 From: Jean Delvare To: Julia Lawall , Ben Dooks Cc: linux-i2c@vger.kernel.org, linus.walleij@stericsson.com, linux-kernel@vger.kernel.org, kernel-janitors@vger.kernel.org Subject: Re: [PATCH 5/5] drivers/i2c: Use resource_size Message-ID: <20090714095018.16e009c8@hyperion.delvare> In-Reply-To: References: X-Mailer: Claws Mail 3.5.0 (GTK+ 2.14.4; i586-suse-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4337 Lines: 124 Hi Julia, On Sun, 5 Jul 2009 08:37:50 +0200 (CEST), Julia Lawall wrote: > From: Julia Lawall > > Use the function resource_size, which reduces the chance of introducing > off-by-one errors in calculating the resource size. > > The semantic patch that makes this change is as follows: > (http://www.emn.fr/x-info/coccinelle/) > > // > @@ > struct resource *res; > @@ > > - (res->end - res->start) + 1 > + resource_size(res) > // > > Signed-off-by: Julia Lawall > > --- > drivers/i2c/busses/i2c-davinci.c | 6 +++--- > drivers/i2c/busses/i2c-omap.c | 6 +++--- > drivers/i2c/busses/i2c-sh_mobile.c | 2 +- > drivers/i2c/busses/i2c-simtec.c | 2 +- > 4 files changed, 8 insertions(+), 8 deletions(-) > > diff -u -p a/drivers/i2c/busses/i2c-davinci.c b/drivers/i2c/busses/i2c-davinci.c > --- a/drivers/i2c/busses/i2c-davinci.c 2009-03-28 23:34:54.000000000 +0100 > +++ b/drivers/i2c/busses/i2c-davinci.c 2009-07-04 21:38:17.000000000 +0200 > @@ -505,7 +505,7 @@ static int davinci_i2c_probe(struct plat > return -ENODEV; > } > > - ioarea = request_mem_region(mem->start, (mem->end - mem->start) + 1, > + ioarea = request_mem_region(mem->start, resource_size(mem), > pdev->name); > if (!ioarea) { > dev_err(&pdev->dev, "I2C region already claimed\n"); > @@ -568,7 +568,7 @@ err_free_mem: > put_device(&pdev->dev); > kfree(dev); > err_release_region: > - release_mem_region(mem->start, (mem->end - mem->start) + 1); > + release_mem_region(mem->start, resource_size(mem)); > > return r; > } > @@ -591,7 +591,7 @@ static int davinci_i2c_remove(struct pla > kfree(dev); > > mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); > - release_mem_region(mem->start, (mem->end - mem->start) + 1); > + release_mem_region(mem->start, resource_size(mem)); > return 0; > } > > diff -u -p a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c > --- a/drivers/i2c/busses/i2c-omap.c 2009-06-24 21:18:49.000000000 +0200 > +++ b/drivers/i2c/busses/i2c-omap.c 2009-07-04 21:38:17.000000000 +0200 > @@ -806,7 +806,7 @@ omap_i2c_probe(struct platform_device *p > return -ENODEV; > } > > - ioarea = request_mem_region(mem->start, (mem->end - mem->start) + 1, > + ioarea = request_mem_region(mem->start, resource_size(mem), > pdev->name); > if (!ioarea) { > dev_err(&pdev->dev, "I2C region already claimed\n"); > @@ -905,7 +905,7 @@ err_free_mem: > platform_set_drvdata(pdev, NULL); > kfree(dev); > err_release_region: > - release_mem_region(mem->start, (mem->end - mem->start) + 1); > + release_mem_region(mem->start, resource_size(mem)); > > return r; > } > @@ -925,7 +925,7 @@ omap_i2c_remove(struct platform_device * > iounmap(dev->base); > kfree(dev); > mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); > - release_mem_region(mem->start, (mem->end - mem->start) + 1); > + release_mem_region(mem->start, resource_size(mem)); > return 0; > } > > diff -u -p a/drivers/i2c/busses/i2c-sh_mobile.c b/drivers/i2c/busses/i2c-sh_mobile.c > --- a/drivers/i2c/busses/i2c-sh_mobile.c 2009-01-09 22:41:01.000000000 +0100 > +++ b/drivers/i2c/busses/i2c-sh_mobile.c 2009-07-04 21:38:18.000000000 +0200 > @@ -563,7 +563,7 @@ static int sh_mobile_i2c_probe(struct pl > goto err_irq; > } > > - size = (res->end - res->start) + 1; > + size = resource_size(res); > > pd->reg = ioremap(res->start, size); > if (pd->reg == NULL) { > diff -u -p a/drivers/i2c/busses/i2c-simtec.c b/drivers/i2c/busses/i2c-simtec.c > --- a/drivers/i2c/busses/i2c-simtec.c 2008-12-07 19:29:06.000000000 +0100 > +++ b/drivers/i2c/busses/i2c-simtec.c 2009-07-04 21:38:16.000000000 +0200 > @@ -92,7 +92,7 @@ static int simtec_i2c_probe(struct platf > goto err; > } > > - size = (res->end-res->start)+1; > + size = resource_size(res); > > pd->ioarea = request_mem_region(res->start, size, dev->name); > if (pd->ioarea == NULL) { Thanks for the patch. Ben, as all affected drivers are for embedded platforms, I suggest that you pick this patch. -- Jean Delvare -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/