Re: Realtime Preemption, 2.6.12, Beginners Guide?

From: Ingo Molnar
Date: Sat Jul 09 2005 - 07:46:48 EST



> (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 <mingo@xxxxxxx>

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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/