diff --git a/drivers/video/aty/atyfb_base.c b/drivers/video/aty/atyfb_base.c index 62f9c6e387cc..e4bcf5376a99 100644 --- a/drivers/video/aty/atyfb_base.c +++ b/drivers/video/aty/atyfb_base.c @@ -2621,11 +2621,14 @@ static int __devinit aty_init(struct fb_info *info) #endif /* CONFIG_FB_ATY_CT */ info->var = var; - fb_alloc_cmap(&info->cmap, 256, 0); - - if (register_framebuffer(info) < 0) + if (fb_alloc_cmap(&info->cmap, 256, 0) < 0) goto aty_init_exit; + if (register_framebuffer(info) < 0) { + fb_dealloc_cmap(&info->cmap); + goto aty_init_exit; + } + fb_list = info; PRINTKI("fb%d: %s frame buffer device on %s\n",