linux-serial.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Ordering problem in serial_core.c
@ 2009-10-22 16:19 Eugene Bordenkircher
  0 siblings, 0 replies; only message in thread
From: Eugene Bordenkircher @ 2009-10-22 16:19 UTC (permalink / raw)
  Cc: linux-serial

There is an ordering problem with closing a UART in the serial core.
If the line discipline is throttling the port when close is called, it
tries to unthrottle the port which, in the case of soft flow, tries to
send the XON character.  This doesn't work well since at this point
the uart has been shutdown.

The simple reordering shown below will seems to fix the problem, but
please comment if there are other side effects I am not seeing.

Eugene T. Bordenkircher

--- linux_kernel/drivers/serial/serial_core.c.orig	2009-08-13
14:58:04.000000000 -0700
+++ linux_kernel/drivers/serial/serial_core.c	2009-08-13
15:29:02.000000000 -0700
@@ -1317,11 +1317,11 @@
 		uart_wait_until_sent(tty, port->timeout);
 	}

+	tty_ldisc_flush(tty);
+
 	uart_shutdown(state);
 	uart_flush_buffer(tty);

-	tty_ldisc_flush(tty);
-
 	tty->closing = 0;
 	state->info.port.tty = NULL;

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2009-10-22 17:36 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-10-22 16:19 Ordering problem in serial_core.c Eugene Bordenkircher

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