lkml.org 
[lkml]   [2004]   [Nov]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: 2.6.10-rc1-mm3
On Sun, Nov 07, 2004 at 11:42:25PM -0800, Andrew Morton wrote:
> Ingo Molnar <mingo@elte.hu> wrote:
> >
> > > Weird. Can you send me the .config?
> >
> > reproducible here too with Paul's .config.
>
> Me too. The problem starts out at tty_register_driver():
>
> if ( !(driver->flags & TTY_DRIVER_NO_DEVFS) ) {
> for(i = 0; i < driver->num; i++)
> tty_register_device(driver, i, NULL);
>
> That NULL for the struct device* propagates all the way down to
> class_hotplug_name() and bang. This bug is present in Linus's tree.
>
>
> 0xc026d8ce in class_hotplug_name (kset=0xc03ccf80, kobj=0xc17b3614) at drivers/base/class.c:278
> 278 return class_dev->class->name;
> (gdb) bt
> #0 0xc026d8ce in class_hotplug_name (kset=0xc03ccf80, kobj=0xc17b3614) at drivers/base/class.c:278
> #1 0xc02164eb in kobject_hotplug (kobj=0xc17b3614, action=0) at lib/kobject_uevent.c:243
> #2 0xc0215f3a in kobject_add (kobj=0xc17b3614) at lib/kobject.c:188
> #3 0xc026db46 in class_device_add (class_dev=0xc17b360c) at drivers/base/class.c:401
> #4 0xc026dc0d in class_device_register (class_dev=0xc17b360c) at drivers/base/class.c:427
> #5 0xc026e09f in class_simple_device_add (cs=0xcffa3d80, dev=0, device=0x0, fmt=0x0)
> at drivers/base/class_simple.c:153
> #6 0xc0254b8d in tty_register_device (driver=0xc1781c00, index=0, device=0x0) at drivers/char/tty_io.c:2708
> #7 0xc0254ed0 in tty_register_driver (driver=0xc1781c00) at drivers/char/tty_io.c:2845
> #8 0xc0577a1b in legacy_pty_init () at drivers/char/pty.c:299
> #9 0xc0577be9 in pty_init () at drivers/char/pty.c:406
> #10 0xc05647da in do_initcalls () at init/main.c:625
> #11 0xc056484e in do_basic_setup () at init/main.c:668
> #12 0xc0100410 in init (unused=0x80) at init/main.c:736
> #13 0xc0104255 in kernel_thread_helper () at arch/i386/kernel/process.c:293
>
> I assume that tty_register_driver is at fault, but will call in Greg for
> adjudication.

No, tty_register_driver() can give NULL as a device associated with the
tty device, that's legal.

And calling class_simple_device_add() with NULL as a device is legal.

And setting the class_dev.dev to NULL in class_simple_device_add() is
legal.

And the associated with a struct device has nothing to do with the
class_dev->class->name field.

None of this code has changed recently.

So I don't see how that could be failing here. And why I don't see this
on my boxes...

thanks,

greg k-h
-
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/

\
 
 \ /
  Last update: 2005-03-22 14:07    [from the cache]
©2003-2014 Jasper Spaans. Advertise on this site