NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/48270: umass / ehci effectively hangs system during stresstest
On 10/04/13 06:55, m.ramakers%gmail.com@localhost wrote:
Number: 48270
Synopsis: umass / ehci effectively hangs system during stresstest
Hi,
Can you see if the attached patch helps it recover, please?
Why it needs to recover is another matter.
Nick
Index: sys/dev/usb/usbdi.c
===================================================================
RCS file: /cvsroot/src/sys/dev/usb/usbdi.c,v
retrieving revision 1.159
diff -u -p -r1.159 usbdi.c
--- sys/dev/usb/usbdi.c 4 Oct 2013 12:47:04 -0000 1.159
+++ sys/dev/usb/usbdi.c 16 Oct 2013 07:22:10 -0000
@@ -296,10 +296,16 @@ usbd_transfer(usbd_xfer_handle xfer)
if (!(flags & USBD_NO_COPY) && size != 0 && !usbd_xfer_isread(xfer))
memcpy(KERNADDR(dmap, 0), xfer->buffer, size);
- /* xfer is not valid after the transfer method unless synchronous */
+ /*
+ * xfer is not valid after the transfer method unless synchronous, or
+ * there was and error
+ */
err = pipe->methods->transfer(xfer);
if (err != USBD_IN_PROGRESS && err) {
+ pipe->running = 0;
+ SIMPLEQ_REMOVE_HEAD(&pipe->queue, next);
+
/* The transfer has not been queued, so free buffer. */
if (xfer->rqflags & URQ_AUTO_DMABUF) {
struct usbd_bus *bus = pipe->device->bus;
Home |
Main Index |
Thread Index |
Old Index