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>
Thu, 5 Aug 2010 12:25:38 +0000 (13:25 +0100)
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/tdfxfb.c

index 980548390048526c9e5bf5311e4cf8722a886c3b..3ee5e63cfa4fd5ba919f49c70289b92db23b31d9 100644 (file)
@@ -1571,8 +1571,8 @@ out_err_iobase:
        if (default_par->mtrr_handle >= 0)
                mtrr_del(default_par->mtrr_handle, info->fix.smem_start,
                         info->fix.smem_len);
-       release_mem_region(pci_resource_start(pdev, 2),
-                          pci_resource_len(pdev, 2));
+       release_region(pci_resource_start(pdev, 2),
+                      pci_resource_len(pdev, 2));
 out_err_screenbase:
        if (info->screen_base)
                iounmap(info->screen_base);