From: Sven L. <lu...@la...> - 2001-09-05 09:21:34
|
On Tue, Sep 04, 2001 at 10:03:02AM -0700, James Simmons wrote: > > > I added some printk's into the __fb_try_mode function, and the last message > > displayed before the OOPS was SVEN : 19, which is just before the if line : > > > > printk ("SVEN : 18\n"); > > var->vmode = mode->vmode > > printk ("SVEN : 19\n"); > > if (info->fbops->fb_check_var) > > err = info->fbops->fb_check_var(var, info); > > printk ("SVEN : 20\n"); > > return !err; > > } > > > > So, i hope this gives you more information to tackle this bug. > > That sounds like a bug in the check_var function. When I get the chance I > will go threw the code. mmm, from my reading of the code and the bug and the stack trace and code pointer, it seems that if fb_check_var was buggy, then the OOPS would happen after the call to fb_check_var, and the code pointer returned by the OOPS would be one inside the fb_check_var function. my guess, but again, i didin't have time to look at it more in detail, would be either info or info->fbops are null pointer. Or maybe even info->fbops->fb_check_var is one, not sure if that would have the same effect. I will add some tests and printks here and report back. But then maybe i misinterpreted the OOPS stuff, and it is possible that the code pointer value is not the real one or something such ? i have no experience in kernel debugging this kind of stuff. Friendly, Sven Luther |