drivers/rtc/rtc-mrst.c: use release_mem_region after request_mem_region
authorJulia Lawall <julia@diku.dk>
Thu, 26 May 2011 23:25:08 +0000 (16:25 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 27 May 2011 00:12:33 +0000 (17:12 -0700)
The memory allocated using request_mem_region should be released using
release_mem_region, not release_region.

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

  // <smpl>
  @@
  expression E1,E2,E3;
  @@

  request_mem_region(E1,E2,E3)
  ...
  ?- release_region(E1,E2)
  + release_mem_region(E1,E2)
  // </smpl>

[akpm@linux-foundation.org: use resource_size()]
Signed-off-by: Julia Lawall <julia@diku.dk>
Cc: Alessandro Zummo <a.zummo@towertech.it>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/rtc/rtc-mrst.c

index b2f096871a97cc5157dbbe75ee80738a941134b1..0cec5650d56a3d03e7ed1c50fb3a3f46a90043bf 100644 (file)
@@ -380,7 +380,7 @@ cleanup1:
 cleanup0:
        dev_set_drvdata(dev, NULL);
        mrst_rtc.dev = NULL;
-       release_region(iomem->start, iomem->end + 1 - iomem->start);
+       release_mem_region(iomem->start, resource_size(iomem));
        dev_err(dev, "rtc-mrst: unable to initialise\n");
        return retval;
 }
@@ -406,7 +406,7 @@ static void __devexit rtc_mrst_do_remove(struct device *dev)
        mrst->rtc = NULL;
 
        iomem = mrst->iomem;
-       release_region(iomem->start, iomem->end + 1 - iomem->start);
+       release_mem_region(iomem->start, resource_size(iomem));
        mrst->iomem = NULL;
 
        mrst->dev = NULL;