VIDEO: Correct use of request_region/request_mem_region
authorJulia Lawall <julia@diku.dk>
Sun, 9 Aug 2009 09:42:32 +0000 (11:42 +0200)
committerRalf Baechle <ralf@linux-mips.org>
Wed, 2 Dec 2009 23:58:32 +0000 (23:58 +0000)
request_region should be used with release_region, not request_mem_region.

Geert Uytterhoeven pointed out that in the case of drivers/video/gbefb.c,
the problem is actually the other way around; request_mem_region should be
used instead of request_region.

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

// <smpl>
@r1@
expression start;
@@

request_region(start,...)

@b1@
expression r1.start;
@@

request_mem_region(start,...)

@depends on !b1@
expression r1.start;
expression E;
@@

- release_mem_region
+ release_region
  (start,E)
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
drivers/video/gbefb.c

index 1a83709..f67db42 100644 (file)
@@ -1147,7 +1147,7 @@ static int __init gbefb_probe(struct platform_device *p_dev)
        gbefb_setup(options);
 #endif
 
-       if (!request_region(GBE_BASE, sizeof(struct sgi_gbe), "GBE")) {
+       if (!request_mem_region(GBE_BASE, sizeof(struct sgi_gbe), "GBE")) {
                printk(KERN_ERR "gbefb: couldn't reserve mmio region\n");
                ret = -EBUSY;
                goto out_release_framebuffer;