On 2002.05.28 19:56 Jos� Fonseca wrote:
> ...
> 
> I'm already updating the CVS tree and rebuilding it, ...
> 

I've started the server and got a kernel oops on mach64_destroy_freelist. 
I've been trying to debug this but since you wrote the code you can give 
me some hints. The result of ksymoops is attached.

I think that what's happening is that one of the several checks to the DMA 
init functions being made have failed, and called mach64_destroy_freelist 
via mach64_do_cleanup_dma, _before_ the lists have been initialized - 
which isn't accounted.

It's necessary to add a check in mach64_destroy_freelist to determine if 
the lists were or not initlized before attempting to free them. I think 
that a check for a NULL head should be enough.

Jos� Fonseca
ksymoops 2.4.5 on i686 2.4.19-gentoo-r5.  Options used
     -V (default)
     -k /proc/ksyms (default)
     -l /proc/modules (default)
     -o /lib/modules/2.4.19-gentoo-r5/ (default)
     -m /usr/src/linux/System.map (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.

cs: cb_alloc(bus 6): vendor 0x10ec, device 0x8139
8139too Fast Ethernet driver 0.9.24
Unable to handle kernel NULL pointer dereference at virtual address 00000000
cc8ea1f6
*pde = 09cd3067
Oops: 0000
CPU:    0
EIP:    0010:[<cc8ea1f6>]    Not tainted
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00013246
eax: cba375f0   ebx: cba37580   ecx: 00000000   edx: c9d3a000
esi: cba375f8   edi: cba37580   ebp: cba37600   esp: c9d3be34
ds: 0018   es: 0018   ss: 0018
Process X (pid: 4994, stackpage=c9d3b000)
Stack: cba37580 c8678000 cba37580 c8678000 00003246 c026dc60 ffffffd8 00003292 
       c9d3be6c c0117b11 cba37580 cc8e9eb6 c8678000 00000028 c8678000 cc8e9ead 
       cc8f12e0 00200000 00000000 c0160081 ca26f880 c9d3bf10 c9d3bf54 c8676da0 
Call Trace: [<c0117b11>] [<cc8e9eb6>] [<cc8e9ead>] [<cc8f12e0>] [<c0160081>] 
   [<cc8e9207>] [<cc8e9f72>] [<cc8e3854>] [<c0147432>] [<c0108aeb>] 
Code: 8b 19 89 44 24 18 8d 47 68 89 44 24 1c 39 f1 74 22 8b 51 04 


>>EIP; cc8ea1f6 <[mach64]mach64_destroy_freelist+3e/108>   <=====

>>eax; cba375f0 <_end+b7352dc/c53ecec>
>>ebx; cba37580 <_end+b73526c/c53ecec>
>>edx; c9d3a000 <_end+9a37cec/c53ecec>
>>esi; cba375f8 <_end+b7352e4/c53ecec>
>>edi; cba37580 <_end+b73526c/c53ecec>
>>ebp; cba37600 <_end+b7352ec/c53ecec>
>>esp; c9d3be34 <_end+9a39b20/c53ecec>

Trace; c0117b11 <printk+129/158>
Trace; cc8e9eb6 <[mach64]mach64_do_cleanup_dma+ca/f4>
Trace; cc8e9ead <[mach64]mach64_do_cleanup_dma+c1/f4>
Trace; cc8f12e0 <[mach64].rodata.start+4ca0/605f>
Trace; c0160081 <ext3_do_update_inode+359/388>
Trace; cc8e9207 <[mach64]mach64_do_dma_init+407/724>
Trace; cc8e9f72 <[mach64]mach64_dma_init+92/b4>
Trace; cc8e3854 <[mach64]mach64_ioctl+d8/e8>
Trace; c0147432 <sys_ioctl+282/2e0>
Trace; c0108aeb <system_call+33/38>

Code;  cc8ea1f6 <[mach64]mach64_destroy_freelist+3e/108>
00000000 <_EIP>:
Code;  cc8ea1f6 <[mach64]mach64_destroy_freelist+3e/108>   <=====
   0:   8b 19                     mov    (%ecx),%ebx   <=====
Code;  cc8ea1f8 <[mach64]mach64_destroy_freelist+40/108>
   2:   89 44 24 18               mov    %eax,0x18(%esp,1)
Code;  cc8ea1fc <[mach64]mach64_destroy_freelist+44/108>
   6:   8d 47 68                  lea    0x68(%edi),%eax
Code;  cc8ea1ff <[mach64]mach64_destroy_freelist+47/108>
   9:   89 44 24 1c               mov    %eax,0x1c(%esp,1)
Code;  cc8ea203 <[mach64]mach64_destroy_freelist+4b/108>
   d:   39 f1                     cmp    %esi,%ecx
Code;  cc8ea205 <[mach64]mach64_destroy_freelist+4d/108>
   f:   74 22                     je     33 <_EIP+0x33> cc8ea229 
<[mach64]mach64_destroy_freelist+71/108>
Code;  cc8ea207 <[mach64]mach64_destroy_freelist+4f/108>
  11:   8b 51 04                  mov    0x4(%ecx),%edx


1 warning issued.  Results may not be reliable.

Reply via email to