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
