2002-12-05 18:57:56

by Burton Windle

[permalink] [raw]
Subject: 2.5.50-bk5: KALLSYMS shows call trace as all _stext

Starting in 2.5.50-bk5 (it works in bk4), oopses when CONFIG_KALLSYMS
seems to mis-report all functions as _stext.

Call Trace:
[<c014cec9>] _stext+0x47ec9/0x17ab4e

However, as seen in the System.map,
bwindle@razor:/giant/linux$ grep c014ce System.map
c014ce50 T get_locks_status


Full example oops:

Unable to handle kernel NULL pointer dereference at virtual address
00000008
printing eip:
c014cbd0
*pde = 00000000
Oops: 0000
CPU: 0
EIP: 0060:[<c014cbd0>] Not tainted
EFLAGS: 00010286
EIP is at _stext+0x47bd0/0x17ab4e
eax: 00000000 ebx: c8b4902f ecx: 0000002f edx: 00000002
esi: c13bad5c edi: 00000000 ebp: c8b61ed8 esp: c8b61ecc
ds: 0068 es: 0068 ss: 0068
Process cat (pid: 263, threadinfo=c8b60000 task=c8cec760)
Stack: c13badd0 c13bad60 c13bad5c c8b61f14 c014cec9 c8b4902f c13bad5c 00000002
c028a9d3 c8b60000 00000400 00000400 c8b61f0c c8b61f10 00000400 00000002
c8b4902f 0000002f c8b61f38 c01608fa c8b49000 c8b61f74 00000000 00000400
Call Trace:
[<c014cec9>] _stext+0x47ec9/0x17ab4e
[<c01608fa>] _stext+0x5b8fa/0x17ab4e
[<c015e708>] _stext+0x59708/0x17ab4e
[<c013a4f7>] _stext+0x354f7/0x17ab4e
[<c013a7c6>] _stext+0x357c6/0x17ab4e
[<c0108b03>] _stext+0x3b03/0x17ab4e

Code: 8b 78 08 8b 45 14 50 8b 45 10 50 68 ec a8 28 c0 53 e8 b2 91

--
Burton Windle [email protected]
Linux: the "grim reaper of innocent orphaned children."
from /usr/src/linux-2.4.18/init/main.c:461



2002-12-05 19:44:17

by Kai Germaschewski

[permalink] [raw]
Subject: Re: 2.5.50-bk5: KALLSYMS shows call trace as all _stext

On Thu, 5 Dec 2002, Burton Windle wrote:

> Starting in 2.5.50-bk5 (it works in bk4), oopses when CONFIG_KALLSYMS
> seems to mis-report all functions as _stext.
>
> Call Trace:
> [<c014cec9>] _stext+0x47ec9/0x17ab4e
>
> However, as seen in the System.map,
> bwindle@razor:/giant/linux$ grep c014ce System.map
> c014ce50 T get_locks_status

Thanks, my bad.

Could you confirm that the appended patch fixes it?

--Kai


===== scripts/kallsyms.c 1.1 vs edited =====
--- 1.1/scripts/kallsyms.c Wed Dec 4 13:16:58 2002
+++ edited/scripts/kallsyms.c Thu Dec 5 13:47:38 2002
@@ -114,6 +114,7 @@

printf(".globl kallsyms_num_syms\n");
printf("\t.align 8\n");
+ printf("kallsyms_num_syms:\n");
printf("\t.long\t%d\n", valid);
printf("\n");