mirror of https://gitee.com/openkylin/linux.git
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:
parent
666cbe3426
commit
72398e4b1a
|
@ -116,7 +116,7 @@ static int __devinit cobalt_buttons_probe(struct platform_device *pdev)
|
|||
}
|
||||
|
||||
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);
|
||||
|
||||
error = input_register_polled_device(poll_dev);
|
||||
|
|
|
@ -231,7 +231,7 @@ static int __init psif_probe(struct platform_device *pdev)
|
|||
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) {
|
||||
ret = -ENOMEM;
|
||||
dev_dbg(&pdev->dev, "could not map I/O memory\n");
|
||||
|
|
|
@ -204,14 +204,14 @@ static int __devinit atmel_tsadcc_probe(struct platform_device *pdev)
|
|||
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")) {
|
||||
dev_err(&pdev->dev, "resources is unavailable.\n");
|
||||
err = -EBUSY;
|
||||
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) {
|
||||
dev_err(&pdev->dev, "failed to map registers.\n");
|
||||
err = -ENOMEM;
|
||||
|
@ -286,7 +286,7 @@ static int __devinit atmel_tsadcc_probe(struct platform_device *pdev)
|
|||
err_unmap_regs:
|
||||
iounmap(tsc_base);
|
||||
err_release_mem:
|
||||
release_mem_region(res->start, res->end - res->start + 1);
|
||||
release_mem_region(res->start, resource_size(res));
|
||||
err_free_dev:
|
||||
input_free_device(ts_dev->input);
|
||||
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);
|
||||
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_put(ts_dev->clk);
|
||||
|
|
|
@ -241,13 +241,13 @@ static int __devinit w90x900ts_probe(struct platform_device *pdev)
|
|||
goto fail1;
|
||||
}
|
||||
|
||||
if (!request_mem_region(res->start, res->end - res->start + 1,
|
||||
if (!request_mem_region(res->start, resource_size(res),
|
||||
pdev->name)) {
|
||||
err = -EBUSY;
|
||||
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) {
|
||||
err = -ENOMEM;
|
||||
goto fail2;
|
||||
|
@ -296,7 +296,7 @@ static int __devinit w90x900ts_probe(struct platform_device *pdev)
|
|||
|
||||
fail4: free_irq(w90p910_ts->irq_num, w90p910_ts);
|
||||
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);
|
||||
kfree(w90p910_ts);
|
||||
return err;
|
||||
|
@ -312,7 +312,7 @@ static int __devexit w90x900ts_remove(struct platform_device *pdev)
|
|||
iounmap(w90p910_ts->ts_reg);
|
||||
|
||||
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);
|
||||
kfree(w90p910_ts);
|
||||
|
|
Loading…
Reference in New Issue