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

From: Alan Cox
Date: Thu Aug 13 2009 - 15:49:41 EST


> 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().

The USB serial driver is broken, fix it instead. It's not even hard to
fix.

> + tty->ops->write(tty, crlf, ARRAY_SIZE(crlf));
> + return ARRAY_SIZE(crlf);

Emphatic NAK. Someone needs to actually fix the broken USB drivers for
once. This is just one example of where the device will go kersplat if its
broken, others include things like losing flow control.

--
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/