On Wed, Oct 10, 2001 at 09:30:01PM -0400, Johannes Erdfelt wrote: > > The real fix is not to workaround specific bugs, but to make all of the > HCI's work the same way. > > Does this patch fix the problem for you? > > JE
Sorry to bother you, but I wanted to give more details about the crash. It took me a bit of trying to get my box to not instantly freeze. Hardware : PPro 150MHz SMP, VIA UHCI add-on card, one IrDA-USB dongle Kernel : 2.4.11 Patches : o Timeout fix you sent me o Other fix mentioned there : http://www.geocrawler.com/lists/3/SourceForge/2571/0/6795975/ o Add 2 printk() in strategic places Behaviour : After the first packet sent to the dongle, things go very funky. I've got this weird error message and all my URB timeout. Then, when the uhci module is remove, I've got a nice oops. The log is attached... Take your time, there is no hurry... Good luck... Jean
usb.c: registered new driver usbdevfs usb.c: registered new driver hub uhci.c: USB Universal Host Controller Interface driver v1.1 uhci.c: USB UHCI at I/O 0xf000, IRQ 11 usb.c: new USB bus registered, assigned bus number 1 uhci.c: detected 2 ports uhci.c - uhci_alloc_urb_priv() - Insert at 8332 uhci.c - uhci_alloc_urb_priv() - Insert at 8334 uhci.c - uhci_alloc_urb_priv() - Insert at 8334 uhci.c - uhci_alloc_urb_priv() - Insert at 8334 uhci.c - uhci_alloc_urb_priv() - Insert at 8334 usb.c: kmalloc IF c5fc91e0, numif 1 uhci.c - uhci_alloc_urb_priv() - Insert at 8334 usb.c: new device strings: Mfr=0, Product=2, SerialNumber=1 uhci.c - uhci_alloc_urb_priv() - Insert at 8334 usb.c: USB device number 1 default language ID 0x0 uhci.c - uhci_alloc_urb_priv() - Insert at 8334 Product: USB UHCI-alt Root Hub uhci.c - uhci_alloc_urb_priv() - Insert at 8334 SerialNumber: f000 hub.c: USB hub found uhci.c - uhci_alloc_urb_priv() - Insert at 8334 hub.c: 2 ports detected hub.c: standalone hub hub.c: ganged power switching hub.c: global over-current protection hub.c: Port indicators are not supported hub.c: power on to power good time: 2ms hub.c: hub controller current requirement: 0mA hub.c: port removable status: RR uhci.c - uhci_alloc_urb_priv() - Insert at 8334 hub.c: local power source is good hub.c: no over-current condition exists uhci.c - uhci_alloc_urb_priv() - Insert at 8334 hub.c: enabling power on all ports uhci.c - uhci_alloc_urb_priv() - Insert at 8334 uhci.c - uhci_alloc_urb_priv() - Insert at 8334 usb.c: hub driver claimed interface c5fc91e0 usb.c: kusbd: /sbin/hotplug add 1 usb.c: kusbd policy returned 0xfffffffe uhci.c: root-hub INT complete: port1: 8a port2: 9b data: 6 uhci.c - uhci_alloc_urb_priv() - Insert at 8359 hub.c: port 1 connection change hub.c: port 1, portstatus 100, change 3, 12 Mb/s uhci.c - uhci_alloc_urb_priv() - Insert at 8359 uhci.c - uhci_alloc_urb_priv() - Insert at 8359 hub.c: port 2 connection change hub.c: port 2, portstatus 101, change 3, 12 Mb/s uhci.c - uhci_alloc_urb_priv() - Insert at 8359 uhci.c - uhci_alloc_urb_priv() - Insert at 8359 uhci.c - uhci_alloc_urb_priv() - Insert at 8369 hub.c: port 2, portstatus 103, change 0, 12 Mb/s uhci.c - uhci_alloc_urb_priv() - Insert at 8369 hub.c: USB new device connect on bus1/2, assigned device number 2 uhci.c - uhci_alloc_urb_priv() - Insert at 8369 uhci.c - uhci_alloc_urb_priv() - Insert at 8371 uhci.c - uhci_alloc_urb_priv() - Insert at 8372 uhci.c - uhci_alloc_urb_priv() - Insert at 8373 uhci.c - uhci_alloc_urb_priv() - Insert at 8374 usb.c: kmalloc IF c4a9cf60, numif 1 usb.c: skipped 1 class/vendor specific interface descriptors uhci.c - uhci_alloc_urb_priv() - Insert at 8376 usb.c: new device strings: Mfr=1, Product=2, SerialNumber=0 uhci.c - uhci_alloc_urb_priv() - Insert at 8376 usb.c: USB device number 2 default language ID 0x409 uhci.c - uhci_alloc_urb_priv() - Insert at 8378 Manufacturer: ACTiSYS Corp. uhci.c - uhci_alloc_urb_priv() - Insert at 8382 uhci.c: root-hub INT complete: port1: 88 port2: 95 data: 2 Product: ACT-IR2000U FIR-USB Adapter usb.c: unhandled interfaces on device usb.c: USB device 2 (vend/prod 0x9c4/0x11) is not claimed by any active driver. Length = 18 DescriptorType = 01 USB version = 1.10 Vendor:Product = 09c4:0011 MaxPacketSize0 = 8 NumConfigurations = 1 Device version = 1.00 Device Class:SubClass:Protocol = ff:00:00 Vendor class Configuration: bLength = 9 bDescriptorType = 02 wTotalLength = 0033 bNumInterfaces = 01 bConfigurationValue = 01 iConfiguration = 00 bmAttributes = 80 MaxPower = 400mA Interface: 0 Alternate Setting: 0 bLength = 9 bDescriptorType = 04 bInterfaceNumber = 00 bAlternateSetting = 00 bNumEndpoints = 03 bInterface Class:SubClass:Protocol = ff:00:00 iInterface = 00 Endpoint: bLength = 7 bDescriptorType = 05 bEndpointAddress = 01 (out) bmAttributes = 02 (Bulk) wMaxPacketSize = 0040 bInterval = 01 Endpoint: bLength = 7 bDescriptorType = 05 bEndpointAddress = 82 (in) bmAttributes = 02 (Bulk) wMaxPacketSize = 0040 bInterval = 01 Endpoint: bLength = 7 bDescriptorType = 05 bEndpointAddress = 83 (in) bmAttributes = 03 (Interrupt) wMaxPacketSize = 0001 bInterval = 01 usb.c: kusbd: /sbin/hotplug add 2 usb.c: kusbd policy returned 0xfffffffe uhci.c - uhci_alloc_urb_priv() - Insert at 8390 uhci.c - uhci_alloc_urb_priv() - Insert at 8390 hub.c: port 1 enable change, status 100 uhci.c - uhci_alloc_urb_priv() - Insert at 8390 uhci.c - uhci_alloc_urb_priv() - Insert at 8390 uhci.c - uhci_alloc_urb_priv() - Insert at 8390 irda_init() irlmp_init() usb.c: registered new driver irda-usb Vendor: 9c4, Product: 11 IRDA-USB found at address 2 uhci.c - uhci_alloc_urb_priv() - Insert at 9029 uhci.c - uhci_alloc_urb_priv() - Insert at 9029 usb-irda: set interface 0 result -32 uhci.c - uhci_alloc_urb_priv() - Insert at 9029 uhci.c - uhci_alloc_urb_priv() - Insert at 9030 irda_usb_probe(), Clearing stall on control interface irda_usb_parse_endpoints(), And our endpoints are : in=02, out=01 (64), int=03 uhci.c - uhci_alloc_urb_priv() - Insert at 9030 irda_usb_find_class_desc(), ret=-32 usb-irda: usb_get_class_descriptor failed (0xffffffe0) irda_usb_find_class_desc(), parsing extra descriptors ... irda_usb_open() irda_usb_init_qos(), dongle says speed=0x13E, size=0x20, window=0x2, bofs=0x4, turn=0x2 irda_usb_net_init() IrDA: Registered device irda0 usb.c: irda-usb driver claimed interface c4a9cf60 USB IrDA support registered irlmp_register_client() irda_usb_net_open() irlap_change_speed(), setting speed to 9600 uhci.c - uhci_alloc_urb_priv() - Insert at 11077 irlmp_register_client() uhci.c - uhci_alloc_urb_priv() - Insert at 11911 uhci.c: f000: host controller process error. something bad happened uhci.c - rh_int_timer_do() - Timeout 11934-11911-20 NETDEV WATCHDOG: irda0: transmit timed out irda_usb_net_timeout(), Network layer thinks we timed out! irda0: Tx timed out, urb->status=-103, urb->transfer_flags=0x1058 uhci.c - uhci_alloc_urb_priv() - Insert at 11952 uhci.c - rh_int_timer_do() - Timeout 11984-11952-10 -------------------------------------------------------- irlmp_register_client() irda_usb_net_close() irda_usb_receive(), Network is gone! usb.c: deregistering driver irda-usb irda_usb_disconnect() irda_usb_close() irda_usb_disconnect(), USB IrDA Disconnected usb.c: USB disconnect on device 1 usb.c: USB disconnect on device 2 usb.c: kusbd: /sbin/hotplug remove 2 usb.c: kusbd policy returned 0xfffffffe usb.c: kusbd: /sbin/hotplug remove 1 usb.c: kusbd policy returned 0xfffffffe usb.c: USB bus 1 deregistered Unable to handle kernel paging request at virtual address c6888f90 printing eip: c685bd08 *pde = 05fe7067 *pte = 00000000 Oops: 0000 CPU: 0 EIP: 0010:[<c685bd08>] Not tainted EFLAGS: 00010006 eax: c54e61c0 ebx: c54e61c0 ecx: 00000282 edx: c0265fc0 esi: c685e380 edi: c6888f94 ebp: c54e6244 esp: c4a11f54 ds: 0018 es: 0018 ss: 0018 Process rmmod (pid: 315, stackpage=c4a11000) Stack: c54e61c0 c685e380 c6858000 bfffea7c 00000282 c685c8ca c54e61c0 c54e61c0 c4ffe460 c11ebc00 c01926cf c11ebc00 c6858000 fffffff0 c685ca2e c685e380 c0117ee7 c6858000 fffffff0 c4a14000 bfffea7c c01172ba c6858000 00000000 Call Trace: [<c685e380>] [<c685c8ca>] [<c01926cf>] [<c685ca2e>] [<c685e380>] [<c0117ee7>] [<c01172ba>] [<c0106d67>] Code: 8b 77 fc 8d 5f f8 8b 3f 8d 43 08 8b 48 04 8b 53 08 89 4a 04 ------------------------------------------------------------- Oct 11 11:44:41 lagaffe kernel: printing eip: Oct 11 11:44:41 lagaffe kernel: c685bd08 Oct 11 11:44:41 lagaffe kernel: Oops: 0000 Oct 11 11:44:41 lagaffe kernel: CPU: 0 Oct 11 11:44:41 lagaffe kernel: EIP: 0010:[<c685bd08>] Not tainted Oct 11 11:44:41 lagaffe kernel: EFLAGS: 00010006 Oct 11 11:44:41 lagaffe kernel: eax: c54e61c0 ebx: c54e61c0 ecx: 00000282 edx: c0265fc0 Oct 11 11:44:41 lagaffe kernel: esi: c685e380 edi: c6888f94 ebp: c54e6244 esp: c4a11f54 Oct 11 11:44:41 lagaffe kernel: ds: 0018 es: 0018 ss: 0018 Oct 11 11:44:41 lagaffe kernel: Process rmmod (pid: 315, stackpage=c4a11000) Oct 11 11:44:41 lagaffe kernel: Stack: c54e61c0 c685e380 c6858000 bfffea7c 00000282 c685c8ca c54e61c0 c54e61c0 Oct 11 11:44:41 lagaffe kernel: c4ffe460 c11ebc00 c01926cf c11ebc00 c6858000 fffffff0 c685ca2e c685e380 Oct 11 11:44:41 lagaffe kernel: c0117ee7 c6858000 fffffff0 c4a14000 bfffea7c c01172ba c6858000 00000000 Oct 11 11:44:41 lagaffe kernel: Call Trace: [<c685e380>] [<c685c8ca>] [pci_unregister_driver+51/76] [<c685ca2e>] [<c685e380>] Oct 11 11:44:41 lagaffe kernel: [free_module+23/172] [sys_delete_module+294/568] [system_call+51/56] Oct 11 11:44:41 lagaffe kernel: Oct 11 11:44:41 lagaffe kernel: Code: 8b 77 fc 8d 5f f8 8b 3f 8d 43 08 8b 48 04 8b 53 08 89 4a 04 ------------------------------------------------------------