Messages in this thread |  | | From | "Petr Vandrovec" <> | Date | Thu, 18 Jul 2002 23:04:54 +0200 | Subject | Re: 2.5.26 broken on headless boxes |
| |
On 18 Jul 02 at 21:32, Matthew Wilcox wrote: > On Thu, Jul 18, 2002 at 01:18:57PM -0700, William Lee Irwin III wrote: > > On Thu, Jul 18, 2002 at 02:29:46PM +0100, Matthew Wilcox wrote: > > >>>EIP; c01b7695 <visual_init+85/e0> <===== > > >>>edx; f7906600 <END_OF_CODE+37502e5c/????> > > >>>edi; c03dcc00 <vc_cons+0/fc> > > >>>esp; c3d45e7c <END_OF_CODE+39426d8/????> > > > Trace; c01b7773 <vc_allocate+83/140> > > > Trace; c01baa25 <con_open+19/88> > > > Trace; c01ac08c <tty_open+20c/394> > > > Trace; c0145a83 <link_path_walk+683/874> > > > Trace; c0144ed7 <permission+27/2c> > > > Trace; c0146373 <may_open+5f/2ac> > > > Trace; c013c33a <chrdev_open+66/98> > > > Trace; c013b001 <dentry_open+e1/1b0> > > > Trace; c013af16 <filp_open+52/5c> > > > Trace; c013b307 <sys_open+37/74> > > > Trace; c0108893 <syscall_call+7/b> > > > > This is the 4th one of these I've seen in the last two days. Any chance > > of being able to compile with -g and get an addr2line on the EIP? I've > > tried to reproduce it myself, but haven't gotten it to happen yet. > > seems fairly obvious what's happening with a couple of printks... > > printk("visual_init: sw = %p, conswitchp = %p, currcons = %d, init = %d\n", > sw, conswitchp, currcons, init); > > gets me the interesting fact that sw & conswitchp are both NULL. > later on, we call: > sw->con_init(vc_cons[currcons].d, init); > which seems like it would be the exact cause, no? > > now whether putting a: > > if (!sw) > return; > > call into visual_init or whether we should determine earlier never to > call visual_init, I don't know. The people who know about the console > have been conspicuously silent so far...
You have enabled CONFIG_VT without CONFIG_VGA_CONSOLE and CONFIG_DUMMY_CONSOLE. It is illegal configuration.
To fix oopses, either enable 'Framebuffer devices' under 'Console drivers' section (you do not have to enable any fbdev driver, just check this option...), or disable CONFIG_VT. See arch/*/kernel/setup.c for explanation, no code in VT subsystem kernel expects conswitchp == NULL, but couple of architectures leaves sometime conswitchp uninitialized.
It would be possible to add error return path to visual_init, but I think that adding
conswitchp = &dummy_con; + #else + #error No console defined with CONFIG_VT enabled #endif #endif
at the end of setup.c will work same way, as open of /dev/tty* will never suceed with your config with added error path anyway. Best regards, Petr Vandrovec vandrove@vc.cvut.cz - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |