On Thu, 21 Nov 2002, Stuart MacDonald wrote:

| Oops attached below.
|
| The scenario: I've got a WhiteHEAT plugged in, and # cu -l /dev/ttyUSB0. The far side
| is sending a small text file across, which cu is displaying as it arrives. During 
|the transfer I
| unplug the WhiteHEAT.

(can you make those lines a bit shorter...?)

and this causes /sbin/hotplug to be run with a "remove" verb.

| Sometimes I get this oops, sometimes I don't. It's always identical, the EIP in 
|copy_flags is
Do you mean EIP in copy_files ?

| always the same. Tracing from my driver shows nearly identical behaviour in both 
|cases,
| so I don't think it's something my driver is doing.

No, so far in my looking it looks like your driver wouldn't have much to
say about it.

| Any ideas on this one?

SMP or uniproc?  what processor type (precisely)?
The code offsets in do_fork() and copy_files() don't match my .o files.
Oh, what compiler version?
I'll try to rebuild my fork.o file to match yours.

It _looks_ to me like it's having a problem with this loop in
copy_files, but I could be a bit off:

        for (i = open_files; i != 0; i--) {
                struct file *f = *old_fds++;
                if (f)
                        get_file(f);
                *new_fds++ = f;
        }

and that <f> in "if (f)" is -1.  Even if that much is correct, I don't
know how that would happen.
But since you a testing this many times anyway, how about changing that to:
                if (!IS_ERR(f))
and see what happens.  That will just skip calling get_file() if
f is -1 (or any negative value between -1000 and -1).

| Just general module un/loading badness?
|
| ..Stu, willing to test, etc...
|
| ksymoops 2.4.1 on i686 2.4.19-wh.  Options used
|      -v /usr/src/linux/vmlinux (specified)
|      -k /var/log/ksymoops/20021121212607.ksyms (specified)
|      -l /var/log/ksymoops/20021121212607.modules (specified)
|      -o /lib/modules/2.4.19-wh/ (default)
|      -m /usr/src/linux/System.map (specified)
|
| Warning (compare_maps): mismatch on symbol studog_debug  , whiteheat says c883c3c0, 
|/lib/modules/2.4.19-wh/kernel/drivers/usb/serial/whiteheat.o says c883c140.  Ignoring
| /lib/modules/2.4.19-wh/kernel/drivers/usb/serial/whiteheat.o entry
| Unable to handle kernel NULL pointer dereference at virtual address 00000013
| c01177e1
| *pde = 00000000
| Oops: 0002
| CPU:    0
| EIP:    0010:[<c01177e1>]    Not tainted
| Using defaults from ksymoops -t elf32-i386 -a i386
| EFLAGS: 00010286
| eax: ffffffff   ebx: c6219c00   ecx: c742187c   edx: 000000e2
| esi: c6219900   edi: c6219c40   ebp: c7f97078   esp: c60edf40
| ds: 0018   es: 0018   ss: 0018
| Process hotplug (pid: 1607, stackpage=c60ed000)
| Stack: 000001c2 00000008 bffff6d8 c0132691 00000100 c742187c c62198c0 00000000
|        00000011 00000001 c60e8000 c0117be6 00000011 c60e8000 fffffff4 00000000
|        c60edf60 00000006 00000725 00000000 c60ec000 c60edfa8 bffff700 c60ec000
| Call Trace:    [<c0132691>] [<c0117be6>] [<c0107535>] [<c0108b0b>]
| Code: f0 ff 40 14 89 45 00 83 c5 04 4a 75 e2 8b 44 24 18 f0 ff 40
|
| >>EIP; c01177e1 <copy_files+1d1/2c0>   <=====
| Trace; c0132691 <__alloc_pages+41/180>
| Trace; c0117be6 <do_fork+316/800>
| Trace; c0107535 <sys_fork+15/20>
| Trace; c0108b0b <system_call+33/38>
| Code;  c01177e1 <copy_files+1d1/2c0>
| 00000000 <_EIP>:
| Code;  c01177e1 <copy_files+1d1/2c0>   <=====
|    0:   f0 ff 40 14               lock incl 0x14(%eax)   <=====
| Code;  c01177e5 <copy_files+1d5/2c0>
|    4:   89 45 00                  mov    %eax,0x0(%ebp)
| Code;  c01177e8 <copy_files+1d8/2c0>
|    7:   83 c5 04                  add    $0x4,%ebp
| Code;  c01177eb <copy_files+1db/2c0>
|    a:   4a                        dec    %edx
| Code;  c01177ec <copy_files+1dc/2c0>
|    b:   75 e2                     jne    ffffffef <_EIP+0xffffffef> c01177d0 
|<copy_files+1c0/2c0>
| Code;  c01177ee <copy_files+1de/2c0>
|    d:   8b 44 24 18               mov    0x18(%esp,1),%eax
| Code;  c01177f2 <copy_files+1e2/2c0>
|   11:   f0 ff 40 00               lock incl 0x0(%eax)
|
|
| 1 warning issued.  Results may not be reliable.

-- 
~Randy



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to