|
@@ -1421,13 +1421,16 @@ static int __devinit sstfb_probe(struct pci_dev *pdev,
|
|
|
goto fail;
|
|
|
}
|
|
|
|
|
|
- fb_alloc_cmap(&info->cmap, 256, 0);
|
|
|
+ if (fb_alloc_cmap(&info->cmap, 256, 0)) {
|
|
|
+ printk(KERN_ERR "sstfb: can't alloc cmap memory.\n");
|
|
|
+ goto fail;
|
|
|
+ }
|
|
|
|
|
|
/* register fb */
|
|
|
info->device = &pdev->dev;
|
|
|
if (register_framebuffer(info) < 0) {
|
|
|
printk(KERN_ERR "sstfb: can't register framebuffer.\n");
|
|
|
- goto fail;
|
|
|
+ goto fail_register;
|
|
|
}
|
|
|
|
|
|
sstfb_clear_screen(info);
|
|
@@ -1441,8 +1444,9 @@ static int __devinit sstfb_probe(struct pci_dev *pdev,
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
-fail:
|
|
|
+fail_register:
|
|
|
fb_dealloc_cmap(&info->cmap);
|
|
|
+fail:
|
|
|
iounmap(info->screen_base);
|
|
|
fail_fb_remap:
|
|
|
iounmap(par->mmio_vbase);
|