Re: Badness in kobject_get at lib/kobject.c:439

From: Svetoslav Slavtchev
Date: Tue Dec 09 2003 - 19:37:23 EST


> On Wed, Dec 10, 2003 at 12:02:56AM +0100, Svetoslav Slavtchev wrote:
> > Call Trace:
> > [<c019a1f4>] kobject_get+0x30/0x3d
> > [<c01dd8d3>] class_get+0x1a/0x2c
> > [<c01ddb67>] class_device_add+0x41/0x110
> > [<c01cc4ec>] misc_add_class_device+0x63/0xc6
> > [<c01cc6d8>] misc_register+0xeb/0x120
> > [<c0361fd8>] apm_init+0x2ec/0x324
>
> Hm, here's the problem. Can you disable APM and see if the oops goes
> away? I bet apm_init() is being called before misc_init() is.
>
> If you don't want to disable APM (and you should not have to) can you
> apply the patch below to misc.c and let me know if it fixes your problem
> or not?
>
> thanks,
>
> greg k-h
>
> --- a/drivers/char/misc.c Mon Oct 6 10:47:30 2003
> +++ b/drivers/char/misc.c Tue Dec 9 15:28:10 2003
> @@ -407,4 +407,4 @@
> }
> return 0;
> }
> -module_init(misc_init);
> +subsys_initcall(misc_init);
>

that brought me probably to the real problem

which seems to come from ruby ( http://linuxconsole.sf.net )

the attached oops couldn't happen in vanilla kernel ?
or should i try without the ruby patches ?

best,

svetljo

--
+++ GMX - die erste Adresse für Mail, Message, More +++
Neu: Preissenkung für MMS und FreeMMS! http://www.gmx.net
ksymoops 2.4.9 on i686 2.6.0-ruby_t11_5vcs. Options used
-v rpm/BUILD/kernel-ruby/tmp/vmlinux (specified)
-K (specified)
-l /proc/modules (default)
-o /lib/modules/2.6.0-t11r5misc/ (specified)
-m /boot/System.map-2.6.0-t11r5misc (specified)

No modules in ksyms, skipping objects
No ksyms, skipping lsmod
Unable to handle kernel NULL pointer dereference at virtual address 00000000
c036c315
*pde = 00000000
Oops: 0000 [#1]
CPU: 0
EIP: 0060:[<c036c315>] Not tainted VLI
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010282
eax: 00000000 ebx: c03c24c4 ecx: 00000001 edx: c03c3b10
esi: 00000162 edi: f7fd868c ebp: c1a37f94 esp: c1a37f8c
ds: 007b es: 007b ss: 0068
Stack: c03925cc c03129e4 c1a37fa4 c036c4b8 c02b2052 c03b8c4c c1a37fcc c036bdfe
c02b2052 00400000 00000000 00400000 00002180 c02aba11 00000001 00000000
c1a37fdc c035a6ce c1a36000 00000000 c1a37fec c01050b4 c0105082 00000000
Call Trace:
[<c036c4b8>] vty_init+0xde/0xf1
[<c036bdfe>] tty_init+0x21c/0x225
[<c035a6ce>] do_initcalls+0x35/0x87
[<c01050b4>] init+0x32/0x10e
[<c0105082>] init+0x0/0x10e
[<c0109201>] kernel_thread_helper+0x5/0xb
Code: ff c9 31 c0 c3 55 89 e5 56 31 f6 53 8b 1d 24 41 31 c0 3b b3 c0 10 00 00 73


>>EIP; c036c315 <console_map_init+26/42> <=====

>>ebx; c03c24c4 <vga_vt+1104/1120>
>>edx; c03c3b10 <queue_handler_lock+6b0/800>
>>edi; f7fd868c <__crc_clip_tbl_hook+816a2/11069a>
>>ebp; c1a37f94 <__crc_unregister_chrdev+10ab03/2aa8c7>
>>esp; c1a37f8c <__crc_unregister_chrdev+10aafb/2aa8c7>

Trace; c036c4b8 <vty_init+de/f1>
Trace; c036bdfe <tty_init+21c/225>
Trace; c035a6ce <do_initcalls+35/87>
Trace; c01050b4 <init+32/10e>
Trace; c0105082 <init+0/10e>
Trace; c0109201 <kernel_thread_helper+5/b>

Code; c036c315 <console_map_init+26/42>
00000000 <_EIP>:
Code; c036c315 <console_map_init+26/42> <=====
0: ff c9 dec %ecx <=====
Code; c036c317 <console_map_init+28/42>
2: 31 c0 xor %eax,%eax
Code; c036c319 <console_map_init+2a/42>
4: c3 ret
Code; c036c31a <console_map_init+2b/42>
5: 55 push %ebp
Code; c036c31b <console_map_init+2c/42>
6: 89 e5 mov %esp,%ebp
Code; c036c31d <console_map_init+2e/42>
8: 56 push %esi
Code; c036c31e <console_map_init+2f/42>
9: 31 f6 xor %esi,%esi
Code; c036c320 <console_map_init+31/42>
b: 53 push %ebx
Code; c036c321 <console_map_init+32/42>
c: 8b 1d 24 41 31 c0 mov 0xc0314124,%ebx
Code; c036c327 <console_map_init+38/42>
12: 3b b3 c0 10 00 00 cmp 0x10c0(%ebx),%esi
Code; c036c32d <console_map_init+3e/42>
18: 73 00 jae 1a <_EIP+0x1a>

<0>Kernel panic: Attempted to kill init!