Messages in this thread Patch in this message | | | Date | Thu, 13 Oct 2005 21:42:56 -0400 | From | Randall Nortman <> | Subject | [PATCH] Regression in 2.6.13 in USB generic serial driver |
| |
Kernel version 2.6.13 introduced a regression (vs. 2.6.12.6) in the generic USB serial converter driver. The regression manifests, as far as I can tell, whenever you attempt to write to the device. The symptom is that the write never completes (write() returns 0, or blocks). I'm pretty sure this will happen with all hardware, but I only have my hardware to test with (amd64 host interfacing to a custom-built USB device based on an Atmel AT91SAM7X256 arm7tdmi chip's built-in USB transceiver).
The patch (vs. vanilla 2.6.13.4) is rather straightforward:
=================================================================== diff -ru linux-2.6.13.4/drivers/usb/serial/generic.c linux-2.6.13.4-fixed/drivers/usb/serial/generic.c --- linux-2.6.13.4/drivers/usb/serial/generic.c 2005-10-10 14:54:29.000000000 -0400 +++ linux-2.6.13.4-fixed/drivers/usb/serial/generic.c 2005-10-13 21:34:54.000000000 -0400 @@ -223,7 +223,7 @@ dbg("%s - port %d", __FUNCTION__, port->number); if (serial->num_bulk_out) { - if (port->write_urb_busy) + if (!(port->write_urb_busy)) room = port->bulk_out_size; } =================================================================== Please let me know if I'm missing something. Otherwise, do I need to do anything in particular to get a maintainer to accept the patch? (I'm a long-time user, first-time patcher, so forgive my ignorance about procedures.)
-- Randall - 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/
| |