Re: [PATCH] Combine two one-character CR-LF writes into onetwo-character write for O_ONLCR

From: Greg KH
Date: Thu Aug 13 2009 - 14:16:42 EST


On Thu, Aug 13, 2009 at 10:54:30AM -0700, David VomLehn wrote:
> When handling output of a newline character in O_ONLCR mode, the n_tty.c
> do_output_char() function uses the struct tty_operations function write_room()
> to determine whether it is possible to write two characters. It uses
> tty_put_char() for each character which, for the USB generic serial driver,
> translates into a write() for each character. For the USB generic serial
> driver the value returned by write_room() only applies to the next write().
> A second write() done in quick succession will fail because the write URB
> buffer is still busy from the first write(). In this case, it results in the
> printing of a carriage return without the following line feed.

How about fixing the usb-serial generic driver to properly handle stuff
like this instead? It should be using a fifo and not the stupid method
it currently is.

Anyway, what device are you using that uses the usb-serial generic
driver that you are seeing this problem with?

thanks,

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