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