linux-serial.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Serial 8250: clear the lsr_break_flag at open
@ 2007-04-30 22:08 Corey Minyard
  2007-05-01  9:29 ` Russell King
  0 siblings, 1 reply; 5+ messages in thread
From: Corey Minyard @ 2007-04-30 22:08 UTC (permalink / raw)
  To: Linux Kernel, Russell King; +Cc: linux-serial

Sorry for the double send, but I messed up on the subject.  I'll
get used to mutt one of these days.

I think I've spotted a bug in the 8250 code, but I'm not really
sure.  I'm having a hard time understanding why the lsr_break_flag
is necessary.

Subject: Serial 8250: clear the lsr_break_flag at open

The lsr_break_flag in the 8250 driver is not cleared when the port is
opened.  This means that on a serial console, if a break has occurred
while the port is closed, the first call to receive_chars() will
result in a break being delivered at that point.  Clear the flag at
open to fix the problem.

Signed-off-by: Corey Minyard <minyard@acm.org>

Index: linux-2.6.21/drivers/serial/8250.c
===================================================================
--- linux-2.6.21.orig/drivers/serial/8250.c
+++ linux-2.6.21/drivers/serial/8250.c
@@ -1638,6 +1638,7 @@ static int serial8250_startup(struct uar
 
 	up->capabilities = uart_config[up->port.type].flags;
 	up->mcr = 0;
+	up->lsr_break_flag = 0;
 
 	if (up->port.type == PORT_16C950) {
 		/* Wake up and initialize UART */


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2007-05-04  3:43 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-04-30 22:08 Serial 8250: clear the lsr_break_flag at open Corey Minyard
2007-05-01  9:29 ` Russell King
2007-05-01 13:23   ` Corey Minyard
2007-05-03 12:08     ` Russell King
2007-05-04  3:43       ` Corey Minyard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).