diff options
author | Andres Salomon <dilinger@queued.net> | 2009-03-31 18:25:23 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-04-01 11:59:30 -0400 |
commit | 0fd853118dd821de59106c5b9a0a2a6f488bc4b5 (patch) | |
tree | 6d008cda04b460a484a8bc44f1b13e7a3c633e7f /drivers/video/skeletonfb.c | |
parent | 5e266e2e0e19532c1b8e2e2bff1eb6ccf42e478a (diff) |
skeletonfb: check fb_alloc_cmap return value and handle failure properly
Bad example code, no cookie!
Signed-off-by: Andres Salomon <dilinger@debian.org>
Cc: Krzysztof Helt <krzysztof.h1@poczta.fm>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/video/skeletonfb.c')
-rw-r--r-- | drivers/video/skeletonfb.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/video/skeletonfb.c b/drivers/video/skeletonfb.c index df5336561d13..a439159204a8 100644 --- a/drivers/video/skeletonfb.c +++ b/drivers/video/skeletonfb.c | |||
@@ -795,8 +795,9 @@ static int __devinit xxxfb_probe(struct pci_dev *dev, | |||
795 | if (!retval || retval == 4) | 795 | if (!retval || retval == 4) |
796 | return -EINVAL; | 796 | return -EINVAL; |
797 | 797 | ||
798 | /* This has to been done !!! */ | 798 | /* This has to be done! */ |
799 | fb_alloc_cmap(&info->cmap, cmap_len, 0); | 799 | if (fb_alloc_cmap(&info->cmap, cmap_len, 0)) |
800 | return -ENOMEM; | ||
800 | 801 | ||
801 | /* | 802 | /* |
802 | * The following is done in the case of having hardware with a static | 803 | * 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, | |||
820 | */ | 821 | */ |
821 | /* xxxfb_set_par(info); */ | 822 | /* xxxfb_set_par(info); */ |
822 | 823 | ||
823 | if (register_framebuffer(info) < 0) | 824 | if (register_framebuffer(info) < 0) { |
825 | fb_dealloc_cmap(&info->cmap); | ||
824 | return -EINVAL; | 826 | return -EINVAL; |
827 | } | ||
825 | printk(KERN_INFO "fb%d: %s frame buffer device\n", info->node, | 828 | printk(KERN_INFO "fb%d: %s frame buffer device\n", info->node, |
826 | info->fix.id); | 829 | info->fix.id); |
827 | pci_set_drvdata(dev, info); /* or platform_set_drvdata(pdev, info) */ | 830 | pci_set_drvdata(dev, info); /* or platform_set_drvdata(pdev, info) */ |