drivers/misc/atmel_tclib.c: fix a memory leak
Axel Lin [Tue, 22 Mar 2011 23:34:01 +0000 (16:34 -0700)]
request_mem_region() will call kzalloc to allocate memory for struct
resource.  release_resource() unregisters the resource but does not free
the allocated memory, thus use release_mem_region() instead to fix the
memory leak.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

drivers/misc/atmel_tclib.c

index 3891124..a844810 100644 (file)
@@ -75,7 +75,7 @@ out:
        return tc;
 
 fail_ioremap:
-       release_resource(r);
+       release_mem_region(r->start, ATMEL_TC_IOMEM_SIZE);
 fail:
        tc = NULL;
        goto out;
@@ -95,7 +95,7 @@ void atmel_tc_free(struct atmel_tc *tc)
        spin_lock(&tc_list_lock);
        if (tc->regs) {
                iounmap(tc->regs);
-               release_resource(tc->iomem);
+               release_mem_region(tc->iomem->start, ATMEL_TC_IOMEM_SIZE);
                tc->regs = NULL;
                tc->iomem = NULL;
        }