diff options
Diffstat (limited to 'packages/linux/linux-mtx-1-2.4.27/32-usbserial-stalled-hack.diff')
-rw-r--r-- | packages/linux/linux-mtx-1-2.4.27/32-usbserial-stalled-hack.diff | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/packages/linux/linux-mtx-1-2.4.27/32-usbserial-stalled-hack.diff b/packages/linux/linux-mtx-1-2.4.27/32-usbserial-stalled-hack.diff new file mode 100644 index 0000000000..bfc1af9db9 --- /dev/null +++ b/packages/linux/linux-mtx-1-2.4.27/32-usbserial-stalled-hack.diff @@ -0,0 +1,22 @@ +--- linux-2.4.27-mtx1/drivers/usb/serial/usbserial.c 2005-08-28 20:23:40.000000000 +0200 ++++ linux-2.4.27-mtx1/drivers/usb/serial/usbserial.c 2005-08-28 20:23:12.000000000 +0200 +@@ -499,6 +499,19 @@ + /* get_usb_serial checks port->tty, so cannot be used */ + serial = port->serial; + if (port->write_busy) { ++ ++ /*-- how is the status of the outgoing urb? --*/ ++ /*-- did we miss a callback? --*/ ++ /*-- problem with the hack below is that we may */ ++ /* corrup structures we currently walk thru */ ++ if (port->write_urb && port->write_urb->status != -EINPROGRESS) { ++ if (port->write_urb->complete) ++ port->write_urb->complete(port->write_urb); ++ else ++ dbg("%s: URB %p has no complete function\n", __FUNCTION__, port->write_urb); ++ } ++ ++ + dbg("%s - port %d busy", __FUNCTION__, port->number); + pos = pos->next; + continue; |