提交 c2312427 编写于 作者: A Andres Salomon 提交者: Linus Torvalds

sstfb: check fb_alloc_cmap return value and handle failure properly

Signed-off-by: NAndres Salomon <dilinger@debian.org>
Acked-by: NKrzysztof Helt <krzysztof.h1@wp.pl>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 0a5d924e
...@@ -1421,13 +1421,16 @@ static int __devinit sstfb_probe(struct pci_dev *pdev, ...@@ -1421,13 +1421,16 @@ static int __devinit sstfb_probe(struct pci_dev *pdev,
goto fail; 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 */ /* register fb */
info->device = &pdev->dev; info->device = &pdev->dev;
if (register_framebuffer(info) < 0) { if (register_framebuffer(info) < 0) {
printk(KERN_ERR "sstfb: can't register framebuffer.\n"); printk(KERN_ERR "sstfb: can't register framebuffer.\n");
goto fail; goto fail_register;
} }
sstfb_clear_screen(info); sstfb_clear_screen(info);
...@@ -1441,8 +1444,9 @@ static int __devinit sstfb_probe(struct pci_dev *pdev, ...@@ -1441,8 +1444,9 @@ static int __devinit sstfb_probe(struct pci_dev *pdev,
return 0; return 0;
fail: fail_register:
fb_dealloc_cmap(&info->cmap); fb_dealloc_cmap(&info->cmap);
fail:
iounmap(info->screen_base); iounmap(info->screen_base);
fail_fb_remap: fail_fb_remap:
iounmap(par->mmio_vbase); iounmap(par->mmio_vbase);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册