Add missing request_mem_region in probe()
PATCH 1/1 Add missing request_mem_region in probe()
---
drivers/i2c/busses/i2c-imx.c | 20 +++++++++++++------- 1 files changed, 13 insertions(+), 7 deletions(-)
drivers/i2c/busses/i2c-imx.c +13 -7
@@ -483,6 +483,11 @@ static int __init i2c_imx_probe(struct platform_device *pdev) goto fail1; } +if (!request_mem_region (res->start, res_size,DRIVER_NAME )) { + ret = -EBUSY ; + goto fail2; + } +/* Setup i2c_imx driver structure */ strcpy (i2c_imx->adapter.name, pdev->name); i2c_imx->adapter.owner =THIS_MODULE ;
@@ -498,7 +503,7 @@ static int __init i2c_imx_probe(struct platform_device *pdev)if (IS_ERR (i2c_imx->clk)) { ret =PTR_ERR (i2c_imx->clk);dev_err (&pdev->dev,"can't get I2C clock\n" ); - goto fail2; + goto fail3; }clk_enable (i2c_imx->clk);
@@ -506,7 +511,7 @@ static int __init i2c_imx_probe(struct platform_device *pdev) ret =request_irq (i2c_imx->irq, i2c_imx_isr,0 , pdev->name, i2c_imx);if (ret) {dev_err (&pdev->dev,"can't claim irq %d\n" , i2c_imx->irq); - goto fail3; + goto fail4; }/* Init queue */
@@ -529,7 +534,7 @@ static int __init i2c_imx_probe(struct platform_device *pdev) ret =i2c_add_numbered_adapter (&i2c_imx->adapter);if (ret <0 ) {dev_err (&pdev->dev,"registration failed\n" ); - goto fail4; + goto fail5; }/* Set up platform driver data */
@@ -546,11 +551,13 @@ static int __init i2c_imx_probe(struct platform_device *pdev)return 0 ;/* Return OK */ -fail4: +fail5:free_irq (i2c_imx->irq, i2c_imx); -fail3: +fail4:clk_disable (i2c_imx->clk);clk_put (i2c_imx->clk); +fail3: +release_mem_region (i2c_imx->res->start,resource_size (res)); fail2:kfree (i2c_imx); fail1:
@@ -589,8 +596,7 @@ static int __exit i2c_imx_remove(struct platform_device *pdev)clk_put (i2c_imx->clk);/* Release memory */ -release_mem_region (i2c_imx->res->start, - i2c_imx->res->end - i2c_imx->res->start +1 ); +release_mem_region (i2c_imx->res->start,resource_size (i2c_imx->res));iounmap (i2c_imx->base);kfree (i2c_imx);return 0 ;
A message that is not in the archive (sent off-list or not yet received): 20090331115253.16399.53728.stgit-bi+AKbBUZKY6gyzm1THtWbp2dZbC/[email protected]
Ben,
please merge this one too, if possible.
Darius.
Quoted 77 lines · Darius Augulis
---
drivers/i2c/busses/i2c-imx.c | 20 +++++++++++++------- 1 files changed, 13 insertions(+), 7 deletions(-)drivers/i2c/busses/i2c-imx.c +13
-7@@ -483,6 +483,11 @@ static int __init i2c_imx_probe(struct platform_device *pdev) goto fail1; } +if (!request_mem_region (res->start, res_size,DRIVER_NAME )) { + ret = -EBUSY ; + goto fail2; + } +/* Setup i2c_imx driver structure */ strcpy (i2c_imx->adapter.name, pdev->name); i2c_imx->adapter.owner =THIS_MODULE ;@@ -498,7 +503,7 @@ static int __init i2c_imx_probe(struct platform_device *pdev)if (IS_ERR (i2c_imx->clk)) { ret =PTR_ERR (i2c_imx->clk);dev_err (&pdev->dev,"can't get I2C clock\n" ); - goto fail2; + goto fail3; }clk_enable (i2c_imx->clk);@@ -506,7 +511,7 @@ static int __init i2c_imx_probe(struct platform_device *pdev) ret =request_irq (i2c_imx->irq, i2c_imx_isr,0 , pdev->name, i2c_imx);if (ret) {dev_err (&pdev->dev,"can't claim irq %d\n" , i2c_imx->irq); - goto fail3; + goto fail4; }/* Init queue */ @@ -529,7 +534,7 @@ static int __init i2c_imx_probe(struct platform_device *pdev) ret =i2c_add_numbered_adapter (&i2c_imx->adapter);if (ret <0 ) {dev_err (&pdev->dev,"registration failed\n" ); - goto fail4; + goto fail5; }/* Set up platform driver data */ @@ -546,11 +551,13 @@ static int __init i2c_imx_probe(struct platform_device *pdev)return 0 ;/* Return OK */ -fail4: +fail5:free_irq (i2c_imx->irq, i2c_imx); -fail3: +fail4:clk_disable (i2c_imx->clk);clk_put (i2c_imx->clk); +fail3: +release_mem_region (i2c_imx->res->start,resource_size (res)); fail2:kfree (i2c_imx); fail1:@@ -589,8 +596,7 @@ static int __exit i2c_imx_remove(struct platform_device *pdev)clk_put (i2c_imx->clk);/* Release memory */ -release_mem_region (i2c_imx->res->start, - i2c_imx->res->end - i2c_imx->res->start +1 ); +release_mem_region (i2c_imx->res->start,resource_size (i2c_imx->res));iounmap (i2c_imx->base);kfree (i2c_imx);return 0 ;
Quoted 1 line · Darius Augulis
Signed-off-by Darius Augulis <[email protected]>
had a bit of problem applying, fixed the error in the remove chunk and applied.
Next time, let's have something in the patch body saying what is going on.
Quoted 80 lines
---
drivers/i2c/busses/i2c-imx.c | 20 +++++++++++++------- 1 files changed, 13 insertions(+), 7 deletions(-)drivers/i2c/busses/i2c-imx.c +13
-8@@ -483,6 +483,11 @@ static int __init i2c_imx_probe(struct platform_device *pdev) goto fail1; } +if (!request_mem_region (res->start, res_size,DRIVER_NAME )) { + ret = -EBUSY ; + goto fail2; + } +/* Setup i2c_imx driver structure */ strcpy (i2c_imx->adapter.name, pdev->name); i2c_imx->adapter.owner =THIS_MODULE ;@@ -498,7 +503,7 @@ static int __init i2c_imx_probe(struct platform_device *pdev)if (IS_ERR (i2c_imx->clk)) { ret =PTR_ERR (i2c_imx->clk);dev_err (&pdev->dev,"can't get I2C clock\n" ); - goto fail2; + goto fail3; }clk_enable (i2c_imx->clk);@@ -506,7 +511,7 @@ static int __init i2c_imx_probe(struct platform_device *pdev) ret =request_irq (i2c_imx->irq, i2c_imx_isr,0 , pdev->name, i2c_imx);if (ret) {dev_err (&pdev->dev,"can't claim irq %d\n" , i2c_imx->irq); - goto fail3; + goto fail4; }/* Init queue */ @@ -529,7 +534,7 @@ static int __init i2c_imx_probe(struct platform_device *pdev) ret =i2c_add_numbered_adapter (&i2c_imx->adapter);if (ret <0 ) {dev_err (&pdev->dev,"registration failed\n" ); - goto fail4; + goto fail5; }/* Set up platform driver data */ @@ -546,11 +551,13 @@ static int __init i2c_imx_probe(struct platform_device *pdev)return 0 ;/* Return OK */ -fail4: +fail5:free_irq (i2c_imx->irq, i2c_imx); -fail3: +fail4:clk_disable (i2c_imx->clk);clk_put (i2c_imx->clk); +fail3: +release_mem_region (i2c_imx->res->start,resource_size (res)); fail2:kfree (i2c_imx); fail1:@@ -589,8 +596,7 @@ static int __exit i2c_imx_remove(struct platform_device *pdev)clk_put (i2c_imx->clk);/* Release memory */ -release_mem_region (i2c_imx->res->start, - i2c_imx->res->end - i2c_imx->res->start +1 ); +release_mem_region (i2c_imx->res->start,resource_size (i2c_imx->res));iounmap (i2c_imx->base);kfree (i2c_imx);return 0 ; --To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
Signature · 3 lines
Ben ([email protected], http://www.fluff.org/) 'a smiley only costs 4 bytes'
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 8 lines · Ben Dooks
Quoted 1 line · Darius Augulis
Signed-off-by Darius Augulis <[email protected]>had a bit of problem applying, fixed the error in the remove chunk and applied.
Next time, let's have something in the patch body saying what is going on.
ok. thank you!
Quoted 82 lines
Quoted 81 lines
---
drivers/i2c/busses/i2c-imx.c | 20 +++++++++++++------- 1 files changed, 13 insertions(+), 7 deletions(-)drivers/i2c/busses/i2c-imx.c +13
-8@@ -483,6 +483,11 @@ static int __init i2c_imx_probe(struct platform_device *pdev) goto fail1; } +if (!request_mem_region (res->start, res_size,DRIVER_NAME )) { + ret = -EBUSY ; + goto fail2; + } +/* Setup i2c_imx driver structure */ strcpy (i2c_imx->adapter.name, pdev->name); i2c_imx->adapter.owner =THIS_MODULE ;@@ -498,7 +503,7 @@ static int __init i2c_imx_probe(struct platform_device *pdev)if (IS_ERR (i2c_imx->clk)) { ret =PTR_ERR (i2c_imx->clk);dev_err (&pdev->dev,"can't get I2C clock\n" ); - goto fail2; + goto fail3; }clk_enable (i2c_imx->clk);@@ -506,7 +511,7 @@ static int __init i2c_imx_probe(struct platform_device *pdev) ret =request_irq (i2c_imx->irq, i2c_imx_isr,0 , pdev->name, i2c_imx);if (ret) {dev_err (&pdev->dev,"can't claim irq %d\n" , i2c_imx->irq); - goto fail3; + goto fail4; }/* Init queue */ @@ -529,7 +534,7 @@ static int __init i2c_imx_probe(struct platform_device *pdev) ret =i2c_add_numbered_adapter (&i2c_imx->adapter);if (ret <0 ) {dev_err (&pdev->dev,"registration failed\n" ); - goto fail4; + goto fail5; }/* Set up platform driver data */ @@ -546,11 +551,13 @@ static int __init i2c_imx_probe(struct platform_device *pdev)return 0 ;/* Return OK */ -fail4: +fail5:free_irq (i2c_imx->irq, i2c_imx); -fail3: +fail4:clk_disable (i2c_imx->clk);clk_put (i2c_imx->clk); +fail3: +release_mem_region (i2c_imx->res->start,resource_size (res)); fail2:kfree (i2c_imx); fail1:@@ -589,8 +596,7 @@ static int __exit i2c_imx_remove(struct platform_device *pdev)clk_put (i2c_imx->clk);/* Release memory */ -release_mem_region (i2c_imx->res->start, - i2c_imx->res->end - i2c_imx->res->start +1 ); +release_mem_region (i2c_imx->res->start,resource_size (i2c_imx->res));iounmap (i2c_imx->base);kfree (i2c_imx);return 0 ; --To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html