> (gdb) ####################################
> (gdb) # c0228ec3, stack size:  764 bytes #
> (gdb) ####################################
> (gdb) 0xc0228ec3 is in calc_mode_timings (drivers/video/fbmon.c:317).

fix below.

        Ingo

--

quick hack to remove a 764 bytes stack footprint from fbmon.c. Codepath 
is most likely serialized but with the semaphore it's for sure.

Signed-off-by: Ingo Molnar <[EMAIL PROTECTED]>

Index: linux/drivers/video/fbmon.c
===================================================================
--- linux.orig/drivers/video/fbmon.c
+++ linux/drivers/video/fbmon.c
@@ -315,9 +315,11 @@ static int edid_is_monitor_block(unsigne
 
 static void calc_mode_timings(int xres, int yres, int refresh, struct 
fb_videomode *mode)
 {
-       struct fb_var_screeninfo var;
-       struct fb_info info;
-       
+       static struct fb_var_screeninfo var;
+       static struct fb_info info;
+       static DECLARE_MUTEX(fb_lock);
+
+       down(&fb_lock);
        var.xres = xres;
        var.yres = yres;
        fb_get_mode(FB_VSYNCTIMINGS | FB_IGNOREMON, 
@@ -334,6 +336,7 @@ static void calc_mode_timings(int xres, 
        mode->vsync_len = var.vsync_len;
        mode->vmode = 0;
        mode->sync = 0;
+       up(&fb_lock);
 }
 
 static int get_est_timing(unsigned char *block, struct fb_videomode *mode)

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to