Hi,
> The problem is that the lower layers do return a scsi-cmd with "DID_ERROR<<16
> (=0x70000)", but the usb-storage insists to complete the command instead, thus
> waiting forever.
>
> The following patch to usb.c does it for me.
Good to hear! That'd need to go through Matt Dharm (storage/usb.c).
> --- usb.c Mon Apr 1 16:08:31 2002
> +++ usb.c.org Mon Apr 1 16:07:15 2002
> @@ -461,9 +461,7 @@
> up(&(us->dev_semaphore));
>
> /* indicate that the command is done */
> -/*cm 01-Apr-02: allow also DID_ERROR as premature abort of command */
> - if ((us->srb->result != DID_ABORT << 16) &&
> (us->srb->result != DID_ERROR << 16)) {
> -/* original line: if (us->srb->result != DID_ABORT << 16) { */
> + if (us->srb->result != DID_ABORT << 16) {
> US_DEBUGP("scsi cmd done, result=0x%x\n",
> us->srb->result);
> set_current_state(TASK_INTERRUPTIBLE);
>
>
> Perhaps this is not the only error situation where a command is not completed?
There are other cases like that. Did you try that error handling fix
I forwarded to you -- does that also fix this problem? If not, I'd hope
that patch would get updated to include (something like) this.
- Dave
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel