drivers/video: Convert release_resource to release_mem_region
authorJulia Lawall <julia@diku.dk>
Fri, 22 Apr 2011 20:11:21 +0000 (20:11 +0000)
committerPaul Mundt <lethal@linux-sh.org>
Tue, 24 May 2011 07:08:54 +0000 (16:08 +0900)
Request_mem_region should be used with release_mem_region, not
release_resource.

The semantic match that finds this problem is as follows:
(http://coccinelle.lip6.fr/)

// <smpl>
@s exists@
expression e1,e2,e3,e4,e;
@@

*e4 = request_mem_region(e1,e2,e3)
... when != e4 = e
*release_resource(e4);
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
drivers/video/s3c-fb.c
drivers/video/sh7760fb.c

index 3fa7911ac9060b58381bee9992867926ddd25a40..d570e588f40a6b47facbf9c2fddc8fdc3f33be11 100644 (file)
@@ -1449,8 +1449,7 @@ err_ioremap:
        iounmap(sfb->regs);
 
 err_req_region:
-       release_resource(sfb->regs_res);
-       kfree(sfb->regs_res);
+       release_mem_region(sfb->regs_res->start, resource_size(sfb->regs_res));
 
 err_clk:
        clk_disable(sfb->bus_clk);
@@ -1486,8 +1485,7 @@ static int __devexit s3c_fb_remove(struct platform_device *pdev)
        clk_disable(sfb->bus_clk);
        clk_put(sfb->bus_clk);
 
-       release_resource(sfb->regs_res);
-       kfree(sfb->regs_res);
+       release_mem_region(sfb->regs_res->start, resource_size(sfb->regs_res));
 
        kfree(sfb);
 
index 8fe19582c4602f65badeb17fbccb930574e243dc..45e47d8471634d2bd9f57c2ef5e3da88cdc8494b 100644 (file)
@@ -551,8 +551,7 @@ out_unmap:
                free_irq(par->irq, &par->vsync);
        iounmap(par->base);
 out_res:
-       release_resource(par->ioarea);
-       kfree(par->ioarea);
+       release_mem_region(res->start, resource_size(res));
 out_fb:
        framebuffer_release(info);
        return ret;
@@ -570,8 +569,7 @@ static int __devexit sh7760fb_remove(struct platform_device *dev)
        if (par->irq >= 0)
                free_irq(par->irq, par);
        iounmap(par->base);
-       release_resource(par->ioarea);
-       kfree(par->ioarea);
+       release_mem_region(par->ioarea->start, resource_size(par->ioarea));
        framebuffer_release(info);
        platform_set_drvdata(dev, NULL);