viafb: Unmap the frame buffer on initialization error
authorJonathan Corbet <corbet@lwn.net>
Fri, 26 Mar 2010 21:45:39 +0000 (15:45 -0600)
committerJonathan Corbet <corbet@lwn.net>
Tue, 20 Apr 2010 20:23:18 +0000 (14:23 -0600)
This was part of Harald's "make viafb a first-class citizen using
pci_driver" patch, but somehow got dropped when that patch went into
mainline.

Cc: Florian Tobias Schandinat <FlorianSchandinat@gmx.de>
Cc: ScottFang@viatech.com.cn
Cc: JosephChan@via.com.tw
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
drivers/video/via/viafbdev.c

index 8af405bf077b2cc266e02ae13ff7db5eda321bbb..8955ab4caac88057ad89e3d0492994adcc6e8a29 100644 (file)
@@ -1870,7 +1870,7 @@ static int __devinit via_pci_probe(struct pci_dev *pdev,
                        printk(KERN_ERR
                        "allocate the second framebuffer struct error\n");
                        rc = -ENOMEM;
-                       goto out_delete_i2c;
+                       goto out_unmap_screen;
                }
                viaparinfo1 = viafbinfo1->par;
                memcpy(viaparinfo1, viaparinfo, viafb_par_length);
@@ -1961,6 +1961,8 @@ out_dealloc_cmap:
 out_fb1_release:
        if (viafbinfo1)
                framebuffer_release(viafbinfo1);
+out_unmap_screen:
+       iounmap(viafbinfo->screen_base);
 out_delete_i2c:
        viafb_delete_i2c_buss(viaparinfo);
 out_fb_release: