does the attached oops makes sense or it is just messed up?

AFAICT the ksymoops is using right System.map, yet the stack
trace does not seem to follow logical order. it is from 2.4.6-pre1


for that matter is "defensive" programming the rule in kernel?
this ops could be avoided if the net/ipv4/ipmr.c:ipmr_new_tunel()
function was changed to check whether 'v' is null and if it is
true then just return.

I did not submit this patch though since I couldn't figure how
in the the first place code ended up there.


-- 
Adam
http://www.eax.com      The Supreme Headquarters of the 32 bit registers


ksymoops 2.4.0 on i686 2.4.6-pre1-packet.  Options used
     -V (default)
     -k /proc/ksyms (default)
     -l /proc/modules (default)
     -o /lib/modules/2.4.6-pre1-packet/ (default)
     -m /boot/System.map-2.4.6-pre1-packet (default)

Warning: You did not tell me where to find symbol information.  I will
assume that the log matches the kernel and modules that are running
right now and I'll use the default options above for symbol resolution.
If the current kernel and/or modules do not match the log, you can get
more accurate output by telling me the kernel version and where to find
map, modules, ksyms etc.  ksymoops -h explains the options.

Warning (compare_maps): ksyms_base symbol __VERSIONED_SYMBOL(shmem_file_setup) not 
found in System.map.  Ignoring ksyms_base entry
Warning (compare_maps): ksyms_base symbol do_softirq_R__ver_do_softirq not found in 
System.map.  Ignoring ksyms_base entry
Warning (compare_maps): mismatch on symbol partition_name  , ksyms_base says c01b4a50, 
System.map says c0157cf0.  Ignoring ksyms_base entry
Warning (compare_maps): ksyms_base symbol 
tasklet_hi_schedule_R__ver_tasklet_hi_schedule not found in System.map.  Ignoring 
ksyms_base entry
Warning (compare_maps): ksyms_base symbol tasklet_schedule_R__ver_tasklet_schedule not 
found in System.map.  Ignoring ksyms_base entry
cpu: 0, clocks: 1002388, slice: 334129
cpu: 1, clocks: 1002388, slice: 334129
Unable to handle kernel NULL pointer dereference at virtual address 0000000c
c01fbd2d
*pde = 00000000
Oops: 0000
CPU:    0
EIP:    0010:[<c01fbd2d>]
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010246
eax: 00000000   ebx: 00000000   ecx: 00000000   edx: 00000100
esi: 06c71bbf   edi: c71bbe4c   ebp: c71bbe18   esp: c71bbe18
ds: 0018   es: 0018   ss: 0018
Process gaim (pid: 19160, stackpage=c71bb000)
Stack: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 
       00000000 00000000 00000000 00000000 00000000 0000009e c5e8781e c6ed0540 
       00000000 c6a37140 00000010 cc874144 00000001 00000000 00000000 00000000 
Call Trace: [<cc874144>] [<c01bb281>] [<c0130584>] [<c01d8ebe>] [<c01414d9>] 
[<c01ba6af>] [<c014743d>] 
       [<c01bb2fd>] [<c01bb994>] [<c0106fff>] [<c010002b>] 
Code: 8b 43 0c 89 44 24 30 8b 43 08 c6 44 24 20 45 c6 44 24 29 04 

>>EIP; c01fbd2d <ipmr_new_tunnel+2d/f0>   <=====
Trace; cc874144 <[tulip]tulip_interrupt+5d4/780>
Trace; c01bb281 <sys_recvfrom+a1/100>
Trace; c0130584 <__alloc_pages+74/270>
Trace; c01d8ebe <tcp_poll+2e/150>
Trace; c01414d9 <pipe_poll+29/70>
Trace; c01ba6af <sock_poll+1f/30>
Trace; c014743d <do_pollfd+1d/80>
Trace; c01bb2fd <sys_recv+1d/30>
Trace; c01bb994 <sys_socketcall+154/200>
Trace; c0106fff <system_call+37/3c>
Trace; c010002b <startup_32+2b/cb>
Code;  c01fbd2d <ipmr_new_tunnel+2d/f0>
00000000 <_EIP>:
Code;  c01fbd2d <ipmr_new_tunnel+2d/f0>   <=====
   0:   8b 43 0c                  mov    0xc(%ebx),%eax   <=====
Code;  c01fbd30 <ipmr_new_tunnel+30/f0>
   3:   89 44 24 30               mov    %eax,0x30(%esp,1)
Code;  c01fbd34 <ipmr_new_tunnel+34/f0>
   7:   8b 43 08                  mov    0x8(%ebx),%eax
Code;  c01fbd37 <ipmr_new_tunnel+37/f0>
   a:   c6 44 24 20 45            movb   $0x45,0x20(%esp,1)
Code;  c01fbd3c <ipmr_new_tunnel+3c/f0>
   f:   c6 44 24 29 04            movb   $0x4,0x29(%esp,1)


6 warnings issued.  Results may not be reliable.

Reply via email to