I first noticed this problem in the 2.4.20 kernel.  I checked out the
latest bk kernel from bk://linuxusb.bkbits.net/usb-2.4 to test if the
problem was still there.

In a nutshell the problem seems to be that a panic happens if the
keyspan driver is receiving data when the port is closed.  I use a bit
error rate tester program called cambert to tickle this problem which
I've stuffed an x86 binary here (sorry source isn't available).

  http://www.craig-wood.com/nick/cambert.gz

Cambert sends data out of the port and checks it comes back OK.  If
there is a loopback connector on the port (a 9 way d-type with pin2
connected to pin3) when cambert is quitted with CTRL-C then the kernel
panics.  If there isn't then it doesn't.

Eg

# put loopback on
  ./cambert /dev/ttyUSB0 115200 8N1 N
  [...]
  *** /dev/ttyUSB0: Gained sync after 187 chars
  *** /dev/ttyUSB0:rx is connected to /dev/ttyUSB0:tx with 130 bytes delay
  [...]
# take loopback off
  ^C
# everything fine

Now

# put loopback on
  ./cambert /dev/ttyUSB0 115200 8N1 N
  [...]
  *** /dev/ttyUSB0: Gained sync after 187 chars
  *** /dev/ttyUSB0:rx is connected to /dev/ttyUSB0:tx with 130 bytes delay
  [...]
  ^C
# 100% reliable Panic!

I've captured 3 essentially identical Panics via serial console, the
first two using the Keyspan 49WLC (new product) and the third with the
old trusty 49W.

We've deployed 100s of 49Ws on a 2.4.19 kernel and they've been
extensively thrashed.  I've been unable to get the 49WLC working
reliably though even backporting the driver to 2.4.19 and 2.4.20
onwards has been a disaster!

I've seen this panic on several hardware platforms, all using usb-uhci
though.  Platform debian stable.  Kernel 2.4.21-pre5 usb-2.4 bk
latest.

Any thoughts on where to go from here to track the problem down would
be much appreciated!

Thanks

Nick

------------------------------------------------------------
ksymoops 2.4.5 on i686 2.4.21-pre5-usb1.  Options used
     -V (default)
     -k ksyms2 (specified)
     -l modules2 (specified)
     -o /lib/modules/2.4.21-pre5-usb1/ (default)
     -m /boot/System.map-2.4.21-pre5-usb1 (default)

kernel BUG at sched.c:564!
invalid operand: 0000
CPU:    0
EIP:    0010:[<c0113ea9>]    Not tainted
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010282
eax: 00000018   ebx: f7712078   ecx: f74b0000   edx: f79f2c60
esi: f74b1ccc   edi: f74b0000   ebp: f74b1cb8   esp: f74b1c94
ds: 0018   es: 0018   ss: 0018
Process cambert (pid: 267, stackpage=f74b1000)
Stack: c0219f3e f7712078 f74b1ccc f74b0000 c02b13e0 00000086 00000000 f74b0000 
       f7712078 f74c0168 c010752d f771201c f7712000 ffffffea 00000001 f74b0000 
       f7712084 f7712084 c0107678 f7712078 f7712000 00000000 f8926231 0000003a 
Call Trace:    [<c010752d>] [<c0107678>] [<f8926231>] [<c017186c>] [<c0171bda>]
  [<c017236f>] [<f89475c6>] [<c01c3226>] [<f89467b5>] [<f8946958>] [<c017112f>]
  [<c011a57c>] [<c011d232>] [<c011a4c2>] [<c011a406>] [<c011a22a>] [<c0109b82>]
  [<f8920018>] [<c020b162>] [<c020b1bf>] [<c020b228>] [<f892b27a>] [<c0170600>]
  [<f89244b4>] [<f8924574>] [<c016fec0>] [<f8924ab3>] [<c01704ee>] [<c0132994>]
  [<c0131a55>] [<c0131aa3>] [<c01086b3>]
Code: 0f 0b 34 02 36 9f 21 c0 83 c4 04 8b 4d f4 c1 e1 05 81 c1 20 


>>EIP; c0113ea9 <schedule+4d/314>   <=====

>>ebx; f7712078 <_end+37422c18/38521ba0>
>>ecx; f74b0000 <_end+371c0ba0/38521ba0>
>>edx; f79f2c60 <_end+37703800/38521ba0>
>>esi; f74b1ccc <_end+371c286c/38521ba0>
>>edi; f74b0000 <_end+371c0ba0/38521ba0>
>>ebp; f74b1cb8 <_end+371c2858/38521ba0>
>>esp; f74b1c94 <_end+371c2834/38521ba0>

Trace; c010752d <__down+55/9c>
Trace; c0107678 <__down_failed+8/c>
Trace; f8926231 <[usbserial].text.lock.usbserial+41/df>
Trace; c017186c <opost+18/1b8>
Trace; c0171bda <echo_char+5a/60>
Trace; c017236f <n_tty_receive_buf+39b/edc>
Trace; f89475c6 <[usb-uhci]uhci_clean_transfer+86/1c4>
Trace; c01c3226 <pci_pool_free+16/e0>
Trace; f89467b5 <[usb-uhci]delete_desc+19/20>
Trace; f8946958 <[usb-uhci]delete_qh+58/64>
Trace; c017112f <flush_to_ldisc+db/e4>
Trace; c011a57c <__run_task_queue+50/5c>
Trace; c011d232 <tqueue_bh+16/1c>
Trace; c011a4c2 <bh_action+1a/40>
Trace; c011a406 <tasklet_hi_action+4a/70>
Trace; c011a22a <do_softirq+5a/a4>
Trace; c0109b82 <do_IRQ+96/a8>
Trace; f8920018 <[usbcore]usb_bandwidth_option+10ec/1c9c>
Trace; c020b162 <__rdtsc_delay+12/1c>
Trace; c020b1bf <__delay+2b/3c>
Trace; c020b228 <__const_udelay+1c/24>
Trace; f892b27a <[keyspan]keyspan_close+ae/158>
Trace; c0170600 <tty_fasync+80/108>
Trace; f89244b4 <[usbserial]__serial_close+4c/7c>
Trace; f8924574 <[usbserial]serial_close+90/a4>
Trace; c016fec0 <release_dev+248/504>
Trace; f8924ab3 <[usbserial]serial_ioctl+cf/f4>
Trace; c01704ee <tty_release+a/10>
Trace; c0132994 <fput+4c/e0>
Trace; c0131a55 <filp_close+55/60>
Trace; c0131aa3 <sys_close+43/54>
Trace; c01086b3 <system_call+33/38>

Code;  c0113ea9 <schedule+4d/314>
00000000 <_EIP>:
Code;  c0113ea9 <schedule+4d/314>   <=====
   0:   0f 0b                     ud2a      <=====
Code;  c0113eab <schedule+4f/314>
   2:   34 02                     xor    $0x2,%al
Code;  c0113ead <schedule+51/314>
   4:   36                        ss
Code;  c0113eae <schedule+52/314>
   5:   9f                        lahf   
Code;  c0113eaf <schedule+53/314>
   6:   21 c0                     and    %eax,%eax
Code;  c0113eb1 <schedule+55/314>
   8:   83 c4 04                  add    $0x4,%esp
Code;  c0113eb4 <schedule+58/314>
   b:   8b 4d f4                  mov    0xfffffff4(%ebp),%ecx
Code;  c0113eb7 <schedule+5b/314>
   e:   c1 e1 05                  shl    $0x5,%ecx
Code;  c0113eba <schedule+5e/314>
  11:   81 c1 20 00 00 00         add    $0x20,%ecx

 <0>Kernel panic: Aiee, killing interrupt handler!
------------------------------------------------------------
ksymoops 2.4.5 on i686 2.4.21-pre5-usb1.  Options used
     -V (default)
     -k ksyms3 (specified)
     -l modules3 (specified)
     -o /lib/modules/2.4.21-pre5-usb1/ (default)
     -m /boot/System.map-2.4.21-pre5-usb1 (default)

kernel BUG at sched.c:564!
invalid operand: 0000
CPU:    0
EIP:    0010:[<c0113ea9>]    Not tainted
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010282
eax: 00000018   ebx: f72c6078   ecx: f7104000   edx: f74e5b20
esi: f7105ccc   edi: f7104000   ebp: f7105cb8   esp: f7105c94
ds: 0018   es: 0018   ss: 0018
Process cambert (pid: 282, stackpage=f7105000)
Stack: c0219f3e f72c6078 f7105ccc f7104000 c02b13e0 00000086 00000000 f7104000 
       f72c6078 f715a168 c010752d f72c601c f72c6000 ffffffea 00000001 f7104000 
       f72c6084 f72c6084 c0107678 f72c6078 f72c6000 00000000 f8926231 0000002c 
Call Trace:    [<c010752d>] [<c0107678>] [<f8926231>] [<c017186c>] [<c0171bda>]
  [<c017236f>] [<f89475c6>] [<c01c3226>] [<f89467b5>] [<f8946958>] [<c017112f>]
  [<c011a57c>] [<c011d232>] [<c011a4c2>] [<c011a406>] [<c011a22a>] [<c0109b82>]
  [<f8920018>] [<c020b164>] [<c020b1bf>] [<c020b228>] [<f892b27a>] [<c0170600>]
  [<f89244b4>] [<f8924574>] [<c016fec0>] [<f8924ab3>] [<c01704ee>] [<c0132994>]
  [<c0131a55>] [<c0131aa3>] [<c01086b3>]
Code: 0f 0b 34 02 36 9f 21 c0 83 c4 04 8b 4d f4 c1 e1 05 81 c1 20 


>>EIP; c0113ea9 <schedule+4d/314>   <=====

>>ebx; f72c6078 <_end+36fd6c18/38521ba0>
>>ecx; f7104000 <_end+36e14ba0/38521ba0>
>>edx; f74e5b20 <_end+371f66c0/38521ba0>
>>esi; f7105ccc <_end+36e1686c/38521ba0>
>>edi; f7104000 <_end+36e14ba0/38521ba0>
>>ebp; f7105cb8 <_end+36e16858/38521ba0>
>>esp; f7105c94 <_end+36e16834/38521ba0>

Trace; c010752d <__down+55/9c>
Trace; c0107678 <__down_failed+8/c>
Trace; f8926231 <[usbserial].text.lock.usbserial+41/df>
Trace; c017186c <opost+18/1b8>
Trace; c0171bda <echo_char+5a/60>
Trace; c017236f <n_tty_receive_buf+39b/edc>
Trace; f89475c6 <[usb-uhci]uhci_clean_transfer+86/1c4>
Trace; c01c3226 <pci_pool_free+16/e0>
Trace; f89467b5 <[usb-uhci]delete_desc+19/20>
Trace; f8946958 <[usb-uhci]delete_qh+58/64>
Trace; c017112f <flush_to_ldisc+db/e4>
Trace; c011a57c <__run_task_queue+50/5c>
Trace; c011d232 <tqueue_bh+16/1c>
Trace; c011a4c2 <bh_action+1a/40>
Trace; c011a406 <tasklet_hi_action+4a/70>
Trace; c011a22a <do_softirq+5a/a4>
Trace; c0109b82 <do_IRQ+96/a8>
Trace; f8920018 <[usbcore]usb_bandwidth_option+10ec/1c9c>
Trace; c020b164 <__rdtsc_delay+14/1c>
Trace; c020b1bf <__delay+2b/3c>
Trace; c020b228 <__const_udelay+1c/24>
Trace; f892b27a <[keyspan]keyspan_close+ae/158>
Trace; c0170600 <tty_fasync+80/108>
Trace; f89244b4 <[usbserial]__serial_close+4c/7c>
Trace; f8924574 <[usbserial]serial_close+90/a4>
Trace; c016fec0 <release_dev+248/504>
Trace; f8924ab3 <[usbserial]serial_ioctl+cf/f4>
Trace; c01704ee <tty_release+a/10>
Trace; c0132994 <fput+4c/e0>
Trace; c0131a55 <filp_close+55/60>
Trace; c0131aa3 <sys_close+43/54>
Trace; c01086b3 <system_call+33/38>

Code;  c0113ea9 <schedule+4d/314>
00000000 <_EIP>:
Code;  c0113ea9 <schedule+4d/314>   <=====
   0:   0f 0b                     ud2a      <=====
Code;  c0113eab <schedule+4f/314>
   2:   34 02                     xor    $0x2,%al
Code;  c0113ead <schedule+51/314>
   4:   36                        ss
Code;  c0113eae <schedule+52/314>
   5:   9f                        lahf   
Code;  c0113eaf <schedule+53/314>
   6:   21 c0                     and    %eax,%eax
Code;  c0113eb1 <schedule+55/314>
   8:   83 c4 04                  add    $0x4,%esp
Code;  c0113eb4 <schedule+58/314>
   b:   8b 4d f4                  mov    0xfffffff4(%ebp),%ecx
Code;  c0113eb7 <schedule+5b/314>
   e:   c1 e1 05                  shl    $0x5,%ecx
Code;  c0113eba <schedule+5e/314>
  11:   81 c1 20 00 00 00         add    $0x20,%ecx

 <0>Kernel panic: Aiee, killing interrupt handler!
------------------------------------------------------------
ksymoops 2.4.5 on i686 2.4.21-pre5-usb1.  Options used
     -V (default)
     -k ksyms5 (specified)
     -l modules5 (specified)
     -o /lib/modules/2.4.21-pre5-usb1/ (default)
     -m /boot/System.map-2.4.21-pre5-usb1 (default)

kernel BUG at sched.c:564!
invalid operand: 0000
CPU:    0
EIP:    0010:[<c0113ea9>]    Not tainted
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010282
eax: 00000018   ebx: f7712878   ecx: f74e0000   edx: f79f2b20
esi: f74e1ccc   edi: f74e0000   ebp: f74e1cb8   esp: f74e1c94
ds: 0018   es: 0018   ss: 0018
Process cambert (pid: 251, stackpage=f74e1000)
Stack: c0219f3e f7712878 f74e1ccc f74e0000 c02b13e0 00000086 00000000 f74e0000 
       f7712878 f7501168 c010752d f771281c f7712800 ffffffea 00000001 f74e0000 
       f7712884 f7712884 c0107678 f7712878 f7712800 00000000 f8926231 000000bb 
Call Trace:    [<c010752d>] [<c0107678>] [<f8926231>] [<c017186c>] [<c0171bda>]
  [<c017236f>] [<f89475c6>] [<c01c3226>] [<f89467b5>] [<f8946958>] [<c017112f>]
  [<c011a57c>] [<c011d232>] [<c011a4c2>] [<c011a406>] [<c011a22a>] [<c0109b82>]
  [<c01d0018>] [<c020b164>] [<c020b1bf>] [<c020b228>] [<f892b27a>] [<c0170600>]
  [<f89244b4>] [<f8924574>] [<c016fec0>] [<c011a22a>] [<c0109b82>] [<c01704ee>]
  [<c0132994>] [<c0131a55>] [<c0131aa3>] [<c01086b3>]
Code: 0f 0b 34 02 36 9f 21 c0 83 c4 04 8b 4d f4 c1 e1 05 81 c1 20 


>>EIP; c0113ea9 <schedule+4d/314>   <=====

>>ebx; f7712878 <_end+37423418/38521ba0>
>>ecx; f74e0000 <_end+371f0ba0/38521ba0>
>>edx; f79f2b20 <_end+377036c0/38521ba0>
>>esi; f74e1ccc <_end+371f286c/38521ba0>
>>edi; f74e0000 <_end+371f0ba0/38521ba0>
>>ebp; f74e1cb8 <_end+371f2858/38521ba0>
>>esp; f74e1c94 <_end+371f2834/38521ba0>

Trace; c010752d <__down+55/9c>
Trace; c0107678 <__down_failed+8/c>
Trace; f8926231 <[usbserial].text.lock.usbserial+41/df>
Trace; c017186c <opost+18/1b8>
Trace; c0171bda <echo_char+5a/60>
Trace; c017236f <n_tty_receive_buf+39b/edc>
Trace; f89475c6 <[usb-uhci]uhci_clean_transfer+86/1c4>
Trace; c01c3226 <pci_pool_free+16/e0>
Trace; f89467b5 <[usb-uhci]delete_desc+19/20>
Trace; f8946958 <[usb-uhci]delete_qh+58/64>
Trace; c017112f <flush_to_ldisc+db/e4>
Trace; c011a57c <__run_task_queue+50/5c>
Trace; c011d232 <tqueue_bh+16/1c>
Trace; c011a4c2 <bh_action+1a/40>
Trace; c011a406 <tasklet_hi_action+4a/70>
Trace; c011a22a <do_softirq+5a/a4>
Trace; c0109b82 <do_IRQ+96/a8>
Trace; c01d0018 <neigh_add+c8/1f0>
Trace; c020b164 <__rdtsc_delay+14/1c>
Trace; c020b1bf <__delay+2b/3c>
Trace; c020b228 <__const_udelay+1c/24>
Trace; f892b27a <[keyspan]keyspan_close+ae/158>
Trace; c0170600 <tty_fasync+80/108>
Trace; f89244b4 <[usbserial]__serial_close+4c/7c>
Trace; f8924574 <[usbserial]serial_close+90/a4>
Trace; c016fec0 <release_dev+248/504>
Trace; c011a22a <do_softirq+5a/a4>
Trace; c0109b82 <do_IRQ+96/a8>
Trace; c01704ee <tty_release+a/10>
Trace; c0132994 <fput+4c/e0>
Trace; c0131a55 <filp_close+55/60>
Trace; c0131aa3 <sys_close+43/54>
Trace; c01086b3 <system_call+33/38>

Code;  c0113ea9 <schedule+4d/314>
00000000 <_EIP>:
Code;  c0113ea9 <schedule+4d/314>   <=====
   0:   0f 0b                     ud2a      <=====
Code;  c0113eab <schedule+4f/314>
   2:   34 02                     xor    $0x2,%al
Code;  c0113ead <schedule+51/314>
   4:   36                        ss
Code;  c0113eae <schedule+52/314>
   5:   9f                        lahf   
Code;  c0113eaf <schedule+53/314>
   6:   21 c0                     and    %eax,%eax
Code;  c0113eb1 <schedule+55/314>
   8:   83 c4 04                  add    $0x4,%esp
Code;  c0113eb4 <schedule+58/314>
   b:   8b 4d f4                  mov    0xfffffff4(%ebp),%ecx
Code;  c0113eb7 <schedule+5b/314>
   e:   c1 e1 05                  shl    $0x5,%ecx
Code;  c0113eba <schedule+5e/314>
  11:   81 c1 20 00 00 00         add    $0x20,%ecx

 <0>Kernel panic: Aiee, killing interrupt handler!
------------------------------------------------------------


-------------------------------------------------------
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