David Brownell wrote: > Out of curiousity, which kind of support does your motherboard provide? > There's the south bridge (VT8235), or the standalone chip (VT6202). > > It might matter; the VT602 hasn't always worked for me in PCI cards > (due to what seem like PCI problems). The patches I sent recently > have gotten more VT8235 testing than VT6206 (NEC behaves fine :), > and in any case I'm glad the patches give you an improvement!
I don't know exactly what chips is there. Its PCI device ID is 0x1106:0x3104 rev 82. It is definitly not south bridge because motheboard contains VT8233A chipset which provides only USB 1.1 support. >> The device works for some time, but when read command timeouts the >> following happens: >> >> 1) If command_abort() is called by scsi subsytem, process deadlocks >> on wait_for_completion(&(us->notify)) > > > For this one, it'd be good to know if 2.5.latest does the same thing. 2.5.38 oopses on the last line if usb_stor_abort_transport (us->srb == NULL). I attepted to fix it: --- linux-2.5.38-orig/drivers/usb/storage/transport.c Sun Sep 22 08:25:06 2002 +++ linux-2.5.38/drivers/usb/storage/transport.c Thu Sep 26 17:18:20 2002 @@ -859,4 +859,5 @@ void usb_stor_abort_transport(struct us_data *us) { + struct Scsi_Host *host; int state = atomic_read(&us->sm_state); @@ -870,5 +871,6 @@ /* set state to abort and release the lock */ atomic_set(&us->sm_state, US_STATE_ABORTING); - scsi_unlock(us->srb->host); + host = us->srb->host; + scsi_unlock(host); /* If the state machine is blocked waiting for an URB or an IRQ, @@ -893,5 +895,5 @@ /* Reacquire the lock */ - scsi_lock(us->srb->host); + scsi_lock(host); } But it still does not work. insmod usb-storage takes about 20 sec. And just after return from insmod the whole system hangs. See log at the end of the letter. > I could believe your diagnosis (usb-storage, or scsi, EH not working), > since I've seen some strange behaviors. But at least some of them do > seem fixed in 2.5, and it'd be good to know more about this case. > (Why was it aborting the command?) Because sd driver timeout which equals to 30 sec for read command expired. >> 2) If I disable command_abort by initializing eh_abort_handler to >> NULL, another issue occures. When scsi subsytem attempts to reset >> device/bus, reset fails and device is disabled. Here are log entries: > > > This one looks odd to me. But again, it does look to me as if > the EHCI driver is behaving reasonably at that point. I think disabling of command_abort is not correct. usb-storage can't perform device reset until previous request is properly aborted. Yuri Initializing USB Mass Storage driver... usb.c: usb_device_probe usb.c: usb_device_probe - got id usb-storage: act_altsetting is 0 usb-storage: id_index calculated to be: 77 usb-storage: Array length appears to be: 79 usb-storage: USB Mass Storage device detected usb-storage: Endpoints: In: 0xcdb4cd24 Out: 0xcdb4cd10 Int: 0xcdb4cd38 (Period 9) usb-storage: New GUID 0840006011100e00003f4a31 usb-storage: GetMaxLUN command result is 1, data is 0 usb-storage: Transport: Bulk usb-storage: Protocol: Transparent SCSI usb-storage: Allocating usb_ctrlrequest usb-storage: Allocating URB usb-storage: *** thread sleeping. scsi0 : SCSI emulation for USB Mass Storage devices usb-storage: queuecommand() called usb-storage: *** thread awakened. usb-storage: Command INQUIRY (6 bytes) usb-storage: 12 00 00 00 24 00 d3 cd 00 00 00 00 usb-storage: Bulk command S 0x43425355 T 0x1 Trg 0 LUN 0 L 36 F 128 CL 6 usb-storage: Bulk command transfer result=0 usb-storage: usb_stor_transfer_partial(): xfer 36 bytes (6 sec later) usb-storage: command_abort() called usb-storage: usb_stor_abort_transport called usb-storage: -- cancelling URB ehci-hcd.c: 00:10.3 urb_dequeue cf3af450 qh cdb270c0 state 1 hcd.c: giveback urb cf3af450 status -104 len 0 usb-storage: usb_stor_bulk_msg() returned -104 xferred 0/36 usb-storage: usb_stor_transfer_partial(): transfer aborted usb-storage: Bulk data transfer result 0x3 usb-storage: -- transport indicates command was aborted usb-storage: scsi command aborted usb-storage: *** thread sleeping. usb-storage: queuecommand() called usb-storage: *** thread awakened. usb-storage: Command TEST_UNIT_READY (6 bytes) usb-storage: 00 00 00 00 00 00 d3 cd 00 00 00 00 usb-storage: Bulk command S 0x43425355 T 0x1 Trg 0 LUN 0 L 0 F 0 CL 6 usb-storage: Bulk command transfer result=0 usb-storage: Attempting to get CSW... (10 sec later) usb-storage: command_abort() called usb-storage: usb_stor_abort_transport called usb-storage: -- cancelling URB ehci-hcd.c: 00:10.3 urb_dequeue cf3af450 qh cdb270c0 state 1 hcd.c: giveback urb cf3af450 status -104 len 0 usb-storage: usb_stor_Bulk_transport(): transfer aborted usb-storage: -- transport indicates command was aborted usb-storage: scsi command aborted usb-storage: *** thread sleeping. usb-storage: device_reset() called usb-storage: Bulk reset requested (20 sec later) message.c: usb_control/bulk_msg: timeout ehci-hcd.c: 00:10.3 urb_dequeue cf0ff740 qh cdb27000 state 1 hcd.c: 00:10.3: wait for giveback urb cf0ff740 hcd.c: giveback urb cf0ff740 status -2 len 0 usb-storage: Soft reset failed: -110 usb-storage: bus_reset() called hub.c: port 1, portstatus 511, change 0, 480 Mb/s hub.c: port 1 of hub 0 not reset yet, waiting 10ms hub.c: port 1, portstatus 511, change 0, 480 Mb/s hub.c: port 1 of hub 0 not reset yet, waiting 10ms hub.c: port 1, portstatus 511, change 0, 480 Mb/s hub.c: port 1 of hub 0 not reset yet, waiting 200ms ehci-hub.c: 00:10.3 port 1 high speed ehci-hub.c: GetStatus port 1 status 001005 POWER sig=se0 PE CONNECT hub.c: port 1, portstatus 503, change 10, 480 Mb/s ehci-q.c: 3strikes ehci-q.c: ep 0-out qtd token 00080248 --> status -71 hcd.c: giveback urb cf3af810 status -71 len 0 hub.c: USB device not accepting new address (error=-71) usb-storage: usb_reset_device returns -71 ehci-hub.c: GetStatus port 1 status 001803 POWER sig=j CSC CONNECT hub.c: port 1, portstatus 501, change 1, 480 Mb/s hub.c: hub 0 port 1 connection change hub.c: hub 0 port 1, portstatus 501, change 1, 480 Mb/s usb.c: USB disconnect on device 2 usb.c: kusbd: /sbin/hotplug remove 2 usb.c: kusbd policy returned 0xfffffffe hub.c: port 1, portstatus 501, change 0, 480 Mb/s hub.c: port 1, portstatus 501, change 0, 480 Mb/s hub.c: port 1, portstatus 501, change 0, 480 Mb/s hub.c: port 1, portstatus 511, change 0, 480 Mb/s hub.c: port 1 of hub 0 not reset yet, waiting 10ms hub.c: port 1, portstatus 511, change 0, 480 Mb/s hub.c: port 1 of hub 0 not reset yet, waiting 10ms hub.c: port 1, portstatus 511, change 0, 480 Mb/s hub.c: port 1 of hub 0 not reset yet, waiting 200ms ehci-hub.c: 00:10.3 port 1 high speed ehci-hub.c: GetStatus port 1 status 001005 POWER sig=se0 PE CONNECT hub.c: port 1, portstatus 503, change 10, 480 Mb/s hub.c: new USB device 00:10.3-1, assigned address 3 usb.c: new device strings: Mfr=73, Product=90, SerialNumber=110 Product: USB Storage Adapter Manufacturer: USB2.0 TO IDE SerialNumber: 11100E00003F4A31 ehci-hcd.c: 00:10.3: free_config devnum 3 ehci-hcd.c: free_config, async ep 0x00 qh cdb27120 ehci-hub.c: 00:10.3 port 1 high speed ehci-hub.c: GetStatus port 1 status 001005 POWER sig=se0 PE CONNECT hub.c: port 1, portstatus 503, change 10, 480 Mb/s hub.c: new USB device 00:10.3-1, assigned address 4 usb.c: new device strings: Mfr=73, Product=90, SerialNumber=110 Product: USB Storage Adapter Manufacturer: USB2.0 TO IDE SerialNumber: 11100E00003F4A31 ehci-hcd.c: 00:10.3: free_config devnum 4 ehci-hcd.c: free_config, async ep 0x00 qh cdb27120 hub.c: port 2, portstatus 100, change 0, 12 Mb/s hub.c: port 3, portstatus 100, change 0, 12 Mb/s hub.c: port 4, portstatus 100, change 0, 12 Mb/s hub.c: port 5, portstatus 100, change 0, 12 Mb/s hub.c: port 6, portstatus 100, change 0, 12 Mb/s ehci-hub.c: GetStatus port 1 status 001803 POWER sig=j CSC CONNECT hub.c: port 1, portstatus 501, change 1, 480 Mb/s hub.c: hub 0 port 1 connection change hub.c: hub 0 port 1, portstatus 501, change 1, 480 Mb/s hub.c: port 1, portstatus 501, change 0, 480 Mb/s hub.c: port 1, portstatus 501, change 0, 480 Mb/s hub.c: port 1, portstatus 501, change 0, 480 Mb/s hub.c: port 1, portstatus 511, change 0, 480 Mb/s hub.c: port 1 of hub 0 not reset yet, waiting 10ms hub.c: port 1, portstatus 511, change 0, 480 Mb/s hub.c: port 1 of hub 0 not reset yet, waiting 10ms hub.c: port 1, portstatus 511, change 0, 480 Mb/s hub.c: port 1 of hub 0 not reset yet, waiting 200ms ehci-hub.c: 00:10.3 port 1 high speed ehci-hub.c: GetStatus port 1 status 001005 POWER sig=se0 PE CONNECT hub.c: port 1, portstatus 503, change 10, 480 Mb/s hub.c: new USB device 00:10.3-1, assigned address 5 usb.c: new device strings: Mfr=73, Product=90, SerialNumber=110 Product: USB Storage Adapter Manufacturer: USB2.0 TO IDE SerialNumber: 11100E00003F4A31 ehci-hcd.c: 00:10.3: free_config devnum 5 ehci-hcd.c: free_config, async ep 0x00 qh cdb27120 ehci-hub.c: 00:10.3 port 1 high speed ehci-hub.c: GetStatus port 1 status 001005 POWER sig=se0 PE CONNECT hub.c: port 1, portstatus 503, change 10, 480 Mb/s hub.c: new USB device 00:10.3-1, assigned address 6 (3 sec later) message.c: usb_control/bulk_msg: timeout ehci-hcd.c: 00:10.3 urb_dequeue cf0ff740 qh cdb27120 state 1 hcd.c: 00:10.3: wait for giveback urb cf0ff740 hcd.c: giveback urb cf0ff740 status -2 len 0 usb-storage: host_reset() requested but not implemented usb-storage: bus_reset() called usb-storage: usb_reset_device returns -2 usb.c: new device strings: Mfr=73, Product=90, SerialNumber=110 Product: USB Storage Adapter Manufacturer: USB2.0 TO IDE SerialNumber: 11100E00003F4A31 ehci-hcd.c: 00:10.3: free_config devnum 6 ehci-hcd.c: free_config, async ep 0x00 qh cdb27120 hub.c: port 2, portstatus 100, change 0, 12 Mb/s hub.c: port 3, portstatus 100, change 0, 12 Mb/s hub.c: port 4, portstatus 100, change 0, 12 Mb/s hub.c: port 5, portstatus 100, change 0, 12 Mb/s hub.c: port 6, portstatus 100, change 0, 12 Mb/s ehci-hub.c: GetStatus port 1 status 001803 POWER sig=j CSC CONNECT hub.c: port 1, portstatus 501, change 1, 480 Mb/s hub.c: hub 0 port 1 connection change hub.c: hub 0 port 1, portstatus 501, change 1, 480 Mb/s hub.c: port 1, portstatus 501, change 0, 480 Mb/s hub.c: port 1, portstatus 501, change 0, 480 Mb/s hub.c: port 1, portstatus 501, change 0, 480 Mb/s hub.c: port 1, portstatus 511, change 0, 480 Mb/s hub.c: port 1 of hub 0 not reset yet, waiting 10ms hub.c: port 1, portstatus 511, change 0, 480 Mb/s hub.c: port 1 of hub 0 not reset yet, waiting 10ms hub.c: port 1, portstatus 511, change 0, 480 Mb/s hub.c: port 1 of hub 0 not reset yet, waiting 200ms ehci-hub.c: 00:10.3 port 1 high speed ehci-hub.c: GetStatus port 1 status 001005 POWER sig=se0 PE CONNECT hub.c: port 1, portstatus 503, change 10, 480 Mb/s hub.c: new USB device 00:10.3-1, assigned address 7 ehci-q.c: 3strikes ehci-q.c: ep 0-out qtd token 80008148 --> status -71 hcd.c: giveback urb cf0ff560 status -71 len 0 (no more messages in log, system hangs) ------------------------------------------------------- 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