|
@@ -795,8 +795,9 @@ static int __devinit xxxfb_probe(struct pci_dev *dev,
|
|
|
if (!retval || retval == 4)
|
|
|
return -EINVAL;
|
|
|
|
|
|
- /* This has to been done !!! */
|
|
|
- fb_alloc_cmap(&info->cmap, cmap_len, 0);
|
|
|
+ /* This has to be done! */
|
|
|
+ if (fb_alloc_cmap(&info->cmap, cmap_len, 0))
|
|
|
+ return -ENOMEM;
|
|
|
|
|
|
/*
|
|
|
* The following is done in the case of having hardware with a static
|
|
@@ -820,8 +821,10 @@ static int __devinit xxxfb_probe(struct pci_dev *dev,
|
|
|
*/
|
|
|
/* xxxfb_set_par(info); */
|
|
|
|
|
|
- if (register_framebuffer(info) < 0)
|
|
|
+ if (register_framebuffer(info) < 0) {
|
|
|
+ fb_dealloc_cmap(&info->cmap);
|
|
|
return -EINVAL;
|
|
|
+ }
|
|
|
printk(KERN_INFO "fb%d: %s frame buffer device\n", info->node,
|
|
|
info->fix.id);
|
|
|
pci_set_drvdata(dev, info); /* or platform_set_drvdata(pdev, info) */
|