]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/rtc/rtc-ep93xx.c
Merge branch 'for-linus' of git://www.linux-m32r.org/git/takata/linux-2.6_dev
[karo-tx-linux.git] / drivers / rtc / rtc-ep93xx.c
index 551332e4ed02a28122b72b817bf0682814ed13c2..9da02d108b73370d79f45dea06f016143b93ac90 100644 (file)
@@ -128,12 +128,16 @@ static int __init ep93xx_rtc_probe(struct platform_device *pdev)
                return -ENOMEM;
 
        res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-       if (res == NULL)
-               return -ENXIO;
+       if (res == NULL) {
+               err = -ENXIO;
+               goto fail_free;
+       }
 
        res = request_mem_region(res->start, resource_size(res), pdev->name);
-       if (res == NULL)
-               return -EBUSY;
+       if (res == NULL) {
+               err = -EBUSY;
+               goto fail_free;
+       }
 
        ep93xx_rtc->mmio_base = ioremap(res->start, resource_size(res));
        if (ep93xx_rtc->mmio_base == NULL) {
@@ -169,6 +173,8 @@ fail:
                pdev->dev.platform_data = NULL;
        }
        release_mem_region(res->start, resource_size(res));
+fail_free:
+       kfree(ep93xx_rtc);
        return err;
 }