Input: use resource_size when allocating resources

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: Dmitry Torokhov <dtor@mail.ru>
This commit is contained in:
Julia Lawall 2009-07-07 22:04:55 -07:00 committed by Dmitry Torokhov
parent 666cbe3426
commit 72398e4b1a
4 changed files with 10 additions and 10 deletions

View File

@ -116,7 +116,7 @@ static int __devinit cobalt_buttons_probe(struct platform_device *pdev)
} }
bdev->poll_dev = poll_dev; bdev->poll_dev = poll_dev;
bdev->reg = ioremap(res->start, res->end - res->start + 1); bdev->reg = ioremap(res->start, resource_size(res));
dev_set_drvdata(&pdev->dev, bdev); dev_set_drvdata(&pdev->dev, bdev);
error = input_register_polled_device(poll_dev); error = input_register_polled_device(poll_dev);

View File

@ -231,7 +231,7 @@ static int __init psif_probe(struct platform_device *pdev)
goto out_free_io; goto out_free_io;
} }
psif->regs = ioremap(regs->start, regs->end - regs->start + 1); psif->regs = ioremap(regs->start, resource_size(regs));
if (!psif->regs) { if (!psif->regs) {
ret = -ENOMEM; ret = -ENOMEM;
dev_dbg(&pdev->dev, "could not map I/O memory\n"); dev_dbg(&pdev->dev, "could not map I/O memory\n");

View File

@ -204,14 +204,14 @@ static int __devinit atmel_tsadcc_probe(struct platform_device *pdev)
goto err_free_dev; goto err_free_dev;
} }
if (!request_mem_region(res->start, res->end - res->start + 1, if (!request_mem_region(res->start, resource_size(res),
"atmel tsadcc regs")) { "atmel tsadcc regs")) {
dev_err(&pdev->dev, "resources is unavailable.\n"); dev_err(&pdev->dev, "resources is unavailable.\n");
err = -EBUSY; err = -EBUSY;
goto err_free_dev; goto err_free_dev;
} }
tsc_base = ioremap(res->start, res->end - res->start + 1); tsc_base = ioremap(res->start, resource_size(res));
if (!tsc_base) { if (!tsc_base) {
dev_err(&pdev->dev, "failed to map registers.\n"); dev_err(&pdev->dev, "failed to map registers.\n");
err = -ENOMEM; err = -ENOMEM;
@ -286,7 +286,7 @@ static int __devinit atmel_tsadcc_probe(struct platform_device *pdev)
err_unmap_regs: err_unmap_regs:
iounmap(tsc_base); iounmap(tsc_base);
err_release_mem: err_release_mem:
release_mem_region(res->start, res->end - res->start + 1); release_mem_region(res->start, resource_size(res));
err_free_dev: err_free_dev:
input_free_device(ts_dev->input); input_free_device(ts_dev->input);
err_free_mem: err_free_mem:
@ -305,7 +305,7 @@ static int __devexit atmel_tsadcc_remove(struct platform_device *pdev)
res = platform_get_resource(pdev, IORESOURCE_MEM, 0); res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
iounmap(tsc_base); iounmap(tsc_base);
release_mem_region(res->start, res->end - res->start + 1); release_mem_region(res->start, resource_size(res));
clk_disable(ts_dev->clk); clk_disable(ts_dev->clk);
clk_put(ts_dev->clk); clk_put(ts_dev->clk);

View File

@ -241,13 +241,13 @@ static int __devinit w90x900ts_probe(struct platform_device *pdev)
goto fail1; goto fail1;
} }
if (!request_mem_region(res->start, res->end - res->start + 1, if (!request_mem_region(res->start, resource_size(res),
pdev->name)) { pdev->name)) {
err = -EBUSY; err = -EBUSY;
goto fail1; goto fail1;
} }
w90p910_ts->ts_reg = ioremap(res->start, res->end - res->start + 1); w90p910_ts->ts_reg = ioremap(res->start, resource_size(res));
if (!w90p910_ts->ts_reg) { if (!w90p910_ts->ts_reg) {
err = -ENOMEM; err = -ENOMEM;
goto fail2; goto fail2;
@ -296,7 +296,7 @@ static int __devinit w90x900ts_probe(struct platform_device *pdev)
fail4: free_irq(w90p910_ts->irq_num, w90p910_ts); fail4: free_irq(w90p910_ts->irq_num, w90p910_ts);
fail3: iounmap(w90p910_ts->ts_reg); fail3: iounmap(w90p910_ts->ts_reg);
fail2: release_mem_region(res->start, res->end - res->start + 1); fail2: release_mem_region(res->start, resource_size(res));
fail1: input_free_device(input_dev); fail1: input_free_device(input_dev);
kfree(w90p910_ts); kfree(w90p910_ts);
return err; return err;
@ -312,7 +312,7 @@ static int __devexit w90x900ts_remove(struct platform_device *pdev)
iounmap(w90p910_ts->ts_reg); iounmap(w90p910_ts->ts_reg);
res = platform_get_resource(pdev, IORESOURCE_MEM, 0); res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
release_mem_region(res->start, res->end - res->start + 1); release_mem_region(res->start, resource_size(res));
input_unregister_device(w90p910_ts->input); input_unregister_device(w90p910_ts->input);
kfree(w90p910_ts); kfree(w90p910_ts);