Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

i2c: Use resource_size

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/)

// <smpl>
@@
struct resource *res;
@@

- (res->end - res->start) + 1
+ resource_size(res)
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>

authored by

Julia Lawall and committed by
Ben Dooks
59330825 7605fa3b

+8 -8
+3 -3
drivers/i2c/busses/i2c-davinci.c
··· 515 515 return -ENODEV; 516 516 } 517 517 518 - ioarea = request_mem_region(mem->start, (mem->end - mem->start) + 1, 518 + ioarea = request_mem_region(mem->start, resource_size(mem), 519 519 pdev->name); 520 520 if (!ioarea) { 521 521 dev_err(&pdev->dev, "I2C region already claimed\n"); ··· 578 578 put_device(&pdev->dev); 579 579 kfree(dev); 580 580 err_release_region: 581 - release_mem_region(mem->start, (mem->end - mem->start) + 1); 581 + release_mem_region(mem->start, resource_size(mem)); 582 582 583 583 return r; 584 584 } ··· 601 601 kfree(dev); 602 602 603 603 mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); 604 - release_mem_region(mem->start, (mem->end - mem->start) + 1); 604 + release_mem_region(mem->start, resource_size(mem)); 605 605 return 0; 606 606 } 607 607
+3 -3
drivers/i2c/busses/i2c-omap.c
··· 806 806 return -ENODEV; 807 807 } 808 808 809 - ioarea = request_mem_region(mem->start, (mem->end - mem->start) + 1, 809 + ioarea = request_mem_region(mem->start, resource_size(mem), 810 810 pdev->name); 811 811 if (!ioarea) { 812 812 dev_err(&pdev->dev, "I2C region already claimed\n"); ··· 905 905 platform_set_drvdata(pdev, NULL); 906 906 kfree(dev); 907 907 err_release_region: 908 - release_mem_region(mem->start, (mem->end - mem->start) + 1); 908 + release_mem_region(mem->start, resource_size(mem)); 909 909 910 910 return r; 911 911 } ··· 925 925 iounmap(dev->base); 926 926 kfree(dev); 927 927 mem = platform_get_resource(pdev, IORESOURCE_MEM, 0); 928 - release_mem_region(mem->start, (mem->end - mem->start) + 1); 928 + release_mem_region(mem->start, resource_size(mem)); 929 929 return 0; 930 930 } 931 931
+1 -1
drivers/i2c/busses/i2c-sh_mobile.c
··· 563 563 goto err_irq; 564 564 } 565 565 566 - size = (res->end - res->start) + 1; 566 + size = resource_size(res); 567 567 568 568 pd->reg = ioremap(res->start, size); 569 569 if (pd->reg == NULL) {
+1 -1
drivers/i2c/busses/i2c-simtec.c
··· 92 92 goto err; 93 93 } 94 94 95 - size = (res->end-res->start)+1; 95 + size = resource_size(res); 96 96 97 97 pd->ioarea = request_mem_region(res->start, size, dev->name); 98 98 if (pd->ioarea == NULL) {