Re: PATCH: usb-uhci: interrupt out with urb->interval 0

David Glance (david@csse.uwa.edu.au)
Sun, 20 Apr 2003 16:08:53 +0800


I am not subscribed to this list - please include me on the
'cc' line.

Version: 2.4.21-pre6
Subsystem: USB
Driver: Lego USB Tower

Writing one-short interrupt out transfers without this patch
cause the system to hang. Applying this patch fixes that
(thankfully after fsck'ing my disk a dozen times!) - however
the driver (which works still using usb-ohci on an ohci
card) - doesn't work because the reads are failing -
returning a ETIMEDOUT.

I am assuming that the changes made (see below) - somehow
have affected other aspects of one-shot interrupt in transfers?

Thanks

David

Frode wrote:

A recent change (2.4.21) in the usb-uhci driver calls
"uhci_clean_iso_step2" after the completion of one-shot
(urb->interval
0) interrupt out transfers. This call clears the list of
descriptors.
However, it crashes when trying to get the next desciptor in
the "for"
loop in the "process_interrupt" function, since the list of
descriptors
are already cleared. A simple change I did was to do a
"break" to quit
the "for" loop for interrupt out transfers with urb->interval 0.

Thanks,
Frode

--- drivers/usb/usb-uhci.c.orig 2003-04-16
15:39:04.000000000 +0200
+++ drivers/usb/usb-uhci.c 2003-04-16 15:39:56.000000000 +0200
@@ -2628,6 +2628,7 @@
// correct toggle after
unlink
usb_dotoggle (urb->dev,
usb_pipeendpoint (urb->pipe), usb_pipeout
(urb->pipe));
clr_td_ioc(desc); //
inactivate TD
+ break;
}
}
}

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/