2003-01-28 14:03:02

by Ookhoi

[permalink] [raw]
Subject: 2.5.59 oops with modprobe lp

Hi all,

Just booted my fresh compiled 2.5.59 (patched with reiser4 and kexec),
and did a 'modprobe lp'. It segfaulted. lsmod hangs.

gcc (GCC) 3.2.2 20030124 (Debian prerelease)

module-init-tools version 0.9.9-pre


Unable to handle kernel paging request at virtual address 30cb40c0
printing eip:
c012c3b8
*pde = 00000000
Oops: 0000
CPU: 0
EIP: 0060:[<c012c3b8>] Not tainted
EFLAGS: 00010097
EIP is at __find_symbol+0x38/0x70
eax: 00000001 ebx: c0309a8b ecx: c03ce300 edx: 00000000
esi: 30cb40c0 edi: e098d118 ebp: 000005ec esp: dd081ec8
ds: 007b es: 007b ss: 0068
Process modprobe (pid: 210, threadinfo=dd080000 task=dd274d20)
Stack: dd080000 e098d118 e098d9e0 e097f3b8 c012ccbd e098d118 dd081ee8 00000001
00000013 e098b9f8 000000cb 00000116 c012cf1e e097f3b8 00000013 e098bea8
e098d118 e098d9e0 00000000 e098bea8 e0979000 e097f3b8 00000007 00000348
Call Trace:
[<c012ccbd>] resolve_symbol+0x2d/0x80
[<c012cf1e>] simplify_symbols+0xae/0x110
[<c012d681>] load_module+0x461/0x880
[<c01110c6>] do_timer_interrupt+0xd6/0xf0
[<c012db09>] sys_init_module+0x69/0x1d0
[<c010ae47>] syscall_call+0x7/0xb

Code: ac ae 75 08 84 c0 75 f8 31 c0 eb 04 19 c0 0c 01 85 c0 74 16
<6>note: modprobe[210] exited with preempt_count 1
bad: scheduling while atomic!
Call Trace:
[<c01191a9>] schedule+0x319/0x320
[<c013cbbe>] cond_resched_lock+0x1e/0x30
[<c013ae1a>] unmap_vmas+0x15a/0x250
[<c013e9f9>] exit_mmap+0x69/0x180
[<c011abb4>] mmput+0x54/0xa0
[<c011e1e3>] do_exit+0x103/0x2d0
[<c010c321>] die+0x71/0x80
[<c0117a8d>] do_page_fault+0x12d/0x459
[<c018bee9>] reiserfs_dirty_inode+0x59/0x80
[<c018bef1>] reiserfs_dirty_inode+0x61/0x80
[<c012372a>] update_process_times+0x2a/0x30
[<c0117960>] do_page_fault+0x0/0x459
[<c010be0d>] error_code+0x2d/0x40
[<c012c3b8>] __find_symbol+0x38/0x70
[<c012ccbd>] resolve_symbol+0x2d/0x80
[<c012cf1e>] simplify_symbols+0xae/0x110
[<c012d681>] load_module+0x461/0x880
[<c01110c6>] do_timer_interrupt+0xd6/0xf0
[<c012db09>] sys_init_module+0x69/0x1d0
[<c010ae47>] syscall_call+0x7/0xb


Can I provide more info?


2003-01-29 00:10:28

by Rusty Russell

[permalink] [raw]
Subject: Re: 2.5.59 oops with modprobe lp

In message <20030128151219.A953@humilis> you write:
> Hi all,
>
> Just booted my fresh compiled 2.5.59 (patched with reiser4 and kexec),
> and did a 'modprobe lp'. It segfaulted. lsmod hangs.

Yep. This is due to a small bug in Kai's vmlinux.lds.h cleanup:

Hope this helps!
Rusty.

diff -Nru a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
--- a/include/asm-generic/vmlinux.lds.h Sat Jan 25 12:24:59 2003
+++ b/include/asm-generic/vmlinux.lds.h Sat Jan 25 12:24:59 2003
@@ -13,18 +13,18 @@
} \
\
/* Kernel symbol table: Normal symbols */ \
- __start___ksymtab = .; \
__ksymtab : AT(ADDR(__ksymtab) - LOAD_OFFSET) { \
+ __start___ksymtab = .; \
*(__ksymtab) \
+ __stop___ksymtab = .; \
} \
- __stop___ksymtab = .; \
\
/* Kernel symbol table: GPL-only symbols */ \
- __start___gpl_ksymtab = .; \
__gpl_ksymtab : AT(ADDR(__gpl_ksymtab) - LOAD_OFFSET) { \
+ __start___gpl_ksymtab = .; \
*(__gpl_ksymtab) \
+ __stop___gpl_ksymtab = .; \
} \
- __stop___gpl_ksymtab = .; \
\
/* Kernel symbol table: strings */ \
__ksymtab_strings : AT(ADDR(__ksymtab_strings) - LOAD_OFFSET) { \

--
Anyone who quotes me in their sig is an idiot. -- Rusty Russell.

2003-01-29 05:42:26

by Ookhoi

[permalink] [raw]
Subject: Re: 2.5.59 oops with modprobe lp

Rusty Russell wrote (ao):
> In message <20030128151219.A953@humilis> you write:
> > Just booted my fresh compiled 2.5.59 (patched with reiser4 and kexec),
> > and did a 'modprobe lp'. It segfaulted. lsmod hangs.
>
> Yep. This is due to a small bug in Kai's vmlinux.lds.h cleanup:

It does, tnx a lot :-)

(and sorry, a quick grep through my mail archives didn't catch the
thread, but after someone kindly mailed me the patch, I saw it was a
know issue).