tridentfb: improve probe function
authorKrzysztof Helt <krzysztof.h1@wp.pl>
Thu, 24 Jul 2008 04:30:57 +0000 (21:30 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 24 Jul 2008 17:47:35 +0000 (10:47 -0700)
Add missing release of allocated fb_info structure and move enable_mmio() to
fix error path.

Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
drivers/video/tridentfb.c

index 8ee4261abf3b604d9f4e9ff982e3458b5ce850f0..e79788a778fe6e1315cfc2d974bba1aea89884a0 100644 (file)
@@ -1287,6 +1287,7 @@ static int __devinit trident_pci_probe(struct pci_dev *dev,
 
        if (!request_mem_region(tridentfb_fix.mmio_start, tridentfb_fix.mmio_len, "tridentfb")) {
                debug("request_region failed!\n");
+               framebuffer_release(info);
                return -1;
        }
 
@@ -1299,8 +1300,6 @@ static int __devinit trident_pci_probe(struct pci_dev *dev,
                goto out_unmap1;
        }
 
-       enable_mmio();
-
        /* setup framebuffer memory */
        tridentfb_fix.smem_start = pci_resource_start(dev, 0);
        tridentfb_fix.smem_len = get_memsize(default_par);
@@ -1312,6 +1311,8 @@ static int __devinit trident_pci_probe(struct pci_dev *dev,
                goto out_unmap1;
        }
 
+       enable_mmio();
+
        info->screen_base = ioremap_nocache(tridentfb_fix.smem_start,
                                            tridentfb_fix.smem_len);