Skip to contentSkip to conversation

Free when fb can't be registered in video/aty/atyfb_base.c

PATCH In review Roel Kluin 2 participants 3 messages Oct 27, 2007 Framebuffer layer

lore
Share & tools
lore

Roel Kluin

author
#0 lore raw

PATCH 1/1 Free when fb can't be registered in video/aty/atyfb_base.c

I am a bit uncertain about this one, but I think a 'free' is required here? --
Free buffer when the framebuffer can't be registered

---

drivers/video/aty/atyfb_base.c +5 -2
index d775eb6..7ccc78e 100644
@@ -2680,10 +2680,13 @@ 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 (fb_alloc_cmap(&info->cmap, 256, 0) < 0)
+		goto aty_init_exit;
 
-	if (register_framebuffer(info) < 0)
+	if (register_framebuffer(info) < 0) {
+                fb_dealloc_cmap(&info->cmap);
 		goto aty_init_exit;
+	}
 
 	fb_list = info;
 

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/

#1 lore raw
Quoted 11 lines · On Sat, 27 Oct 2007 03:55:54 +0200 Roel Kluin wrote:

I am a bit uncertain about this one, but I think a 'free' is required here? --
Free buffer when the framebuffer can't be registered

---

drivers/video/aty/atyfb_base.c +0 -0
index d775eb6..7ccc78e 100644

drivers/video/aty/atyfb_base.c static int __devinit aty_init(struct fb_info *info) · line 2687

Quoted 10 lines
drivers/video/aty/atyfb_base.c +4 -2
@@ -2680,10 +2680,13 @@ 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 (fb_alloc_cmap(&info->cmap, 256, 0) < 0)
+		goto aty_init_exit;
 
-	if (register_framebuffer(info) < 0)
+	if (register_framebuffer(info) < 0) {
+                fb_dealloc_cmap(&info->cmap);

Use tabs for indent above, not spaces.

Yes, looks needed to me. Hopefully Tony will correct us if we are wrong.

Also appears to be needed in:
68328fb.c, ambaclcd.c, asiliantfb.c, atafb.c, ...
(I stopped looking for now.)

drivers/video/aty/atyfb_base.c static int __devinit aty_init(struct fb_info *info) · line 2692

Quoted 5 lines
drivers/video/aty/atyfb_base.c +1 -0
 		goto aty_init_exit;
+	}
 
 	fb_list = info;
 

---
~Randy

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/

author
#2 lore raw
Quoted 6 lines · Randy Dunlap

Use tabs for indent above, not spaces.

Yes, looks needed to me. Hopefully Tony will correct us if we are wrong.

Thanks for reviewing, here is one without the little spaces --

--

drivers/video/aty/atyfb_base.c +5 -2
index d775eb6..669abd3 100644
@@ -2680,10 +2680,13 @@ 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 (fb_alloc_cmap(&info->cmap, 256, 0) < 0)
+		goto aty_init_exit;
 
-	if (register_framebuffer(info) < 0)
+	if (register_framebuffer(info) < 0) {
+		fb_dealloc_cmap(&info->cmap);
 		goto aty_init_exit;
+	}
 
 	fb_list = info;
 

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/