aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJulia Lawall <julia@diku.dk>2009-09-18 16:45:51 -0400
committerJean Delvare <khali@linux-fr.org>2009-09-18 16:45:51 -0400
commit449d2c759ddba46a89b698bdc64bfc2f7cc5bb66 (patch)
treeb18c049b56cec341d1f1fb624c26d76772ea0807 /drivers
parenta1867d36b3bda28314fdd832a510dc9e55821c4c (diff)
i2c-pnx: Correct use of request_region/request_mem_region
request_mem_region should be used when ioremap is used subsequently. release_region is then correspondingly replaced by release_mem_region. The semantic patch that fixes this problem is as follows: (http://coccinelle.lip6.fr/) // <smpl> @r@ expression start,E; @@ - request_region + request_mem_region (start,...) ... when != request_mem_region(start,...) when != start = E ioremap(start,...) @@ expression r.start; @@ - release_region + release_mem_region (start,...) // </smpl> Signed-off-by: Julia Lawall <julia@diku.dk> Cc: Vitaly Wool <vitalywool@gmail.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/i2c/busses/i2c-pnx.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/i2c/busses/i2c-pnx.c b/drivers/i2c/busses/i2c-pnx.c
index ec15cff556b..6ff6c20f1e7 100644
--- a/drivers/i2c/busses/i2c-pnx.c
+++ b/drivers/i2c/busses/i2c-pnx.c
@@ -586,7 +586,8 @@ static int __devinit i2c_pnx_probe(struct platform_device *pdev)
586 alg_data->mif.timer.data = (unsigned long)i2c_pnx->adapter; 586 alg_data->mif.timer.data = (unsigned long)i2c_pnx->adapter;
587 587
588 /* Register I/O resource */ 588 /* Register I/O resource */
589 if (!request_region(alg_data->base, I2C_PNX_REGION_SIZE, pdev->name)) { 589 if (!request_mem_region(alg_data->base, I2C_PNX_REGION_SIZE,
590 pdev->name)) {
590 dev_err(&pdev->dev, 591 dev_err(&pdev->dev,
591 "I/O region 0x%08x for I2C already in use.\n", 592 "I/O region 0x%08x for I2C already in use.\n",
592 alg_data->base); 593 alg_data->base);
@@ -650,7 +651,7 @@ out_clock:
650out_unmap: 651out_unmap:
651 iounmap((void *)alg_data->ioaddr); 652 iounmap((void *)alg_data->ioaddr);
652out_release: 653out_release:
653 release_region(alg_data->base, I2C_PNX_REGION_SIZE); 654 release_mem_region(alg_data->base, I2C_PNX_REGION_SIZE);
654out_drvdata: 655out_drvdata:
655 platform_set_drvdata(pdev, NULL); 656 platform_set_drvdata(pdev, NULL);
656out: 657out:
@@ -667,7 +668,7 @@ static int __devexit i2c_pnx_remove(struct platform_device *pdev)
667 i2c_del_adapter(adap); 668 i2c_del_adapter(adap);
668 i2c_pnx->set_clock_stop(pdev); 669 i2c_pnx->set_clock_stop(pdev);
669 iounmap((void *)alg_data->ioaddr); 670 iounmap((void *)alg_data->ioaddr);
670 release_region(alg_data->base, I2C_PNX_REGION_SIZE); 671 release_mem_region(alg_data->base, I2C_PNX_REGION_SIZE);
671 platform_set_drvdata(pdev, NULL); 672 platform_set_drvdata(pdev, NULL);
672 673
673 return 0; 674 return 0;